我的构造函数:
bnf::bnf(string encoded)
{
this->encoded = encoded;
}
将字符串数据复制到成员。 (或者它......?)
我将有一个递归解码方法,但我想避免一直写this->encoded
。
如何在方法中有效且简单地创建对成员的别名/引用?
最好避免这种开销吗?
答案 0 :(得分:1)
您可以传入不同的命名参数。这假设encoded
是bnf
类
bnf::bnf(string en)
{
encoded = en;
}
在您的其他功能中,如果您不想,则仍然无需编写this
:
void bnf::printCode(){
cout << encoded << endl;
}
假设你的班级是这样的:
class bnf{
public:
bnf(string en};
void printCode();
//<some other functions>
private:
string encoded;
}
答案 1 :(得分:1)
你现在正在做的事情没有错。它富有表现力,清晰和正确。不要试图破坏它。
如果您担心使用this
指针会产生“开销”,请不要:它已经尽可能高效。实际上没有办法让它更快。
如果您的问题稍有不妥,而您想要做的就是在成员函数中提及成员变量,那么:
struct MyClass
{
int x;
void myFunction();
};
void MyClass::myFunction()
{
this->x = 4;
}
该功能相当于:
void MyClass::myFunction()
{
x = 4;
}