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

标签 c++ class

<分区>

Possible Duplicate:
C++ using this pointer in constructors

如题,我可以做类似下面的代码吗?

class A;

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

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

最佳答案

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

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

关于c++ - 我们可以在构造函数中使用 'this' 指针吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12071147/

相关文章:

c++ - 在c++中应该使用什么代码代替getche

c++ - 循环执行

带模板的 C++ 共享库 : Undefined symbols error

c++ - 涉及指针和手动实现的矩阵类的问题

c++ - 元组 bool 值不变

Python 类 - 使用实例作为属性

c++ - 尝试打开目录进行读取时,CreateFile 总是返回错误 5(访问被拒绝)

c++ - 在 Google UnitTest 中检测 glog 输出

c++ - 处理对话框中的键盘输入 - Windows

c++ - 如何在类的构造函数中定义成员 vector 的大小?