继承的Constructor代码什么时候被调用

发布于 2024-11-01 14:27:00 字数 442 浏览 1 评论 0原文

如果我的类的构造函数继承了另一个类的参数化构造函数,那么该继承的构造函数代码会在我放置在构造函数中的代码之前还是之后执行?

例如:

TCurrentKillerThread::TCurrentKillerThread() : TThread(true){
  CurrentKillerMutex = CreateMutex(NULL,true,NULL); // protect thread 
  try {
     Write("Created Current Killer");
  } __finally {
    ReleaseMutex(CurrentKillerMutex);
  }
  Start();
}

TThread(true) 会在 TCurrectKillerThread() 中的代码之前执行吗?

If the constructor of my class inherits a parametrized constructor of another class, will that inherited constructor code be executed before or after the code that I place in my constructor?

For instance in this:

TCurrentKillerThread::TCurrentKillerThread() : TThread(true){
  CurrentKillerMutex = CreateMutex(NULL,true,NULL); // protect thread 
  try {
     Write("Created Current Killer");
  } __finally {
    ReleaseMutex(CurrentKillerMutex);
  }
  Start();
}

Would TThread(true) be executed before the code I have in TCurrectKillerThread()?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

獨角戲 2024-11-08 14:27:00

是的。父类总是在派生类之前初始化。不过,您并没有继承构造函数 - 您正在调用它。

Yes. The parent class is always initialized before the derived. You are not inheriting the constructor though - you're calling it.

哭了丶谁疼 2024-11-08 14:27:00

是的,C++ 构造是从最低的基类到最派生的类进行的。

Yes, C++ construction works from the lowest base class to the most derived one.

匿名的好友 2024-11-08 14:27:00

TThread(true) 会在我在 TCurrectKillerThread() 中的代码之前执行吗?

是的,当派生类对象实例化时,TThread(bool var){ .... }TCurrentKillerThread(){ .... } 之前执行。在C++中,父类子对象的构造必须发生在派生类子对象之前。

Would TThread(true) be executed before the code I have in TCurrectKillerThread()?

Yes, TThread(bool var){ .... } is executed before TCurrentKillerThread(){ .... } when the derived class object is instantiated. Construction of parent class sub-object must take place before the derived class sub-object in C++.

云醉月微眠 2024-11-08 14:27:00

当然,基类的构造函数在子类的构造函数之前执行,析构函数从子类到基类执行

Of course, the constructor of base class is executed before the constructor of subclass, and destructor is executed from subclass to base class

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文