如何从构造函数中确定类的内存分配地址?

Jim*_*ell 1 c++ class instantiation

是否有可能从该类的构造函数中获取新实例化的类的内存分配地址?
我正在开发一个链表,其中多个类有多个指向类的指针.每次新类实例化时,都需要检查其父级列表以确保它包含在内.

如果我尝试做这样的事情:

MyClass() // constructor
{
   extern MyClass * pParent;

   for ( int i = 0; i < max; i++ )
   {
      pParent->rels[i] == &MyClass; // error
   }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

错误C2275:'namespace :: MyClass':非法使用此类型作为表达式

任何想法或建议将不胜感激.谢谢.

dre*_*lax 7

你在找this.


R S*_*hko 6

你的意思是:

pParents->rels[i] = this;
Run Code Online (Sandbox Code Playgroud)

  • 不,他显然意味着比较,而不是任务;-) (4认同)
  • 请注意,从构造函数传递`this`被认为是不好的形式,因为在构造函数退出之前不保证实例完全构造.特别警惕涉及虚函数(直接或间接)的用途.由于纯虚方法调用,这可能是一个非常快速的死亡途径. (2认同)