我们可以在构造函数中使用'this'指针

cHi*_*iWa 12 c++ class

可能重复:
C++在构造函数中使用此指针

像标题一样,我可以做类似下面的代码吗?

class A;

class B {
public:
    B(A* p);
    ...
};

class A {
    B m;
public:
    A():m(this){}
    ~A(){}
};
Run Code Online (Sandbox Code Playgroud)

Tor*_*zki 11

是的,您可以传递指向当前正在构建的对象的指针.但是你必须记住,对象还没有完全构建.所以B基本上可以做的就是存储指针供以后使用.

经常使用它的一个例子是std :: stream和流缓冲区.