我想知道在C++中使用'this'是否是一个好习惯.起初我以为我应该这样,因为你明确表示你所引用的东西是当前类的成员,但有时你会用以下代码结束:
Document::Document(QWidget *parent) : QWidget(parent)
{
this->file = 0;
this->layout = new QGridLayout(this);
this->layout->setSpacing(2);
this->layout->setMargin(0);
this->setLayout(this.layout);
this->textArea = new QTextEdit(this);
this->textArea->setLineWrapMode(QTextEdit::NoWrap);
this->textArea->setAcceptDrops(true);
this->textArea->setAcceptRichText(true);
this->textArea->setUndoRedoEnabled(true);
this->textArea->setFont(QFont("Mono" , 11));
this->layout->addWidget(this->textArea);
this->textArea->show();
this->textArea->setFocus();
}
Run Code Online (Sandbox Code Playgroud)
我认为如果没有使用所有'this',这样会更好看this->layout->addWidget(this.textArea);.我认为代码在大多数情况下应该使用相同的样式,以便更容易阅读,所以我应该在必要时使用"this",或者使用它来表明你引用的是一个好的做法同一类的成员.
对此没有单一的答案.这取决于具体情况,这取决于你的要求.
有些人this一直都在使用.有些人从不使用它.有些人使用特殊前缀(mFile而不是file)重命名所有成员变量.
我宁愿只在this必要时使用前缀来避免歧义.
在编写良好的代码中,通常很明显您是指代本地变量还是成员变量,因此this实际上并没有做太多.但有时读者很难确定变量是否是类成员.然后this是一个澄清的好方法.
如果使用this更容易阅读(更容易理解,就是说),那么额外的输入是非常值得的。
在一个复杂的程序中,每一行代码都会写一次,但会读很多次(由不同的程序员),所以这是一项很好的投资。
我所知道的最易读的语言之一是 Python,它迫使您每次都编写self.x(相当于this->xC++),这根本不是问题。它的问题在于,在 Python 中,当您编写slef.x而不是self.x在运行时捕获错误时,但这是一个不同的无关问题......