我的构造函数:
bnf::bnf(string encoded)
{
this->encoded = encoded;
}
将字符串数据复制到成员。(或者它..?)
我将有一个递归解码方法,但想避免this->encoded
一直写。
如何有效且简单地在方法中创建对成员的别名/引用?
这会最好避免开销吗?
我的构造函数:
bnf::bnf(string encoded)
{
this->encoded = encoded;
}
将字符串数据复制到成员。(或者它..?)
我将有一个递归解码方法,但想避免this->encoded
一直写。
如何有效且简单地在方法中创建对成员的别名/引用?
这会最好避免开销吗?
你现在做的事情没有错。它富有表现力,清晰而正确。不要试图破坏它。
如果您担心使用this
指针的“开销”,请不要:它已经尽可能高效了。从字面上看,没有办法让它更快。
如果您的问题稍有错误,并且您只想在成员函数中提及成员变量,那么:
struct MyClass
{
int x;
void myFunction();
};
void MyClass::myFunction()
{
this->x = 4;
}
该函数等价于:
void MyClass::myFunction()
{
x = 4;
}
您可以只传入一个不同的命名参数。这是假设这是您班级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;
}