12

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

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

class A;

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

class A {
    B m;
public:
    A():m(this){}
    ~A(){}
};
4

1 回答 1

11

是的,您可以将指针传递给当前正在构建的对象。但是您必须记住,该对象尚未完全构建。所以基本上 B 在它的 c'tor 中可以做的是存储指针以供以后使用。

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

于 2012-08-22T10:33:29.627 回答