当我说你不应该在构造函数中使用’this’关键字而其他人说完全相反时,我会读一些文章….
现在我的主要问题是:它是否安全,在构造函数中使用’this’是一个好习惯吗?
这个问题导致其他人:
>如何创建对象?
>什么时候创建一个类的成员?在调用构造函数之前?
以下是在Windows 7上使用VS2012的一些示例:
class FirstClass
{
int m_A;
public:
FirstClass( int a ) : m_A( a )
{
std::cout << this->m_A << std::endl;
// ^^^^
}
};
并且:
class ThirdClass; // forward decl
class SecondClass
{
public:
SecondClass( ThirdClass* iTC )
{
// ...
}
};
class ThirdClass
{
SecondClass* m_SC;
public:
ThirdClass():
m_SC( new SecondClass( this ) )
// ^^^^
{
//...
}
};
这些例子是有效的,但是有可能存在未定义的行为吗?