【发布时间】:2020-03-28 18:06:35
【问题描述】:
我尝试对成员变量进行引用,但发现它不起作用。有没有办法做到这一点?如果没有,有没有办法不经常写“(* this)”。 ?
#include <iostream>
#include <string>
class Test
{
private:
std::string str_m;
void doSomething()
{
std::string& str = (*this).str_m; // does not work
std::cout << str << '\n';
}
public:
Test(std::string str): str_m(str)
{
(*this).doSomething();
}
};
int main()
{
Test test{"aaa"};
return 0;
}
VS 编译器给了我:error C3867: 'Test::doSomething': non-standard syntax;使用 '&' 创建指向成员的指针
【问题讨论】:
-
不经常写
(*this)的方法就是干脆不写.... -
你从哪里得到这样的代码风格:
(*this).doSomething(); -
我的意思是指变量
-
错误信息与您的代码不匹配。您没有在任何地方使用
Test::doSomething。该代码是功能性的,但不寻常,因为您可以只写->而不是*后跟.或完全删除this显式引用。
标签: c++ class reference member-variables