C++ 不从派生类调用基类构造函数

C++ 不从派生类调用基类构造函数,c++,class,derived-class,C++,Class,Derived Class,假设我有一个基类: class baseClass { public: baseClass() { }; }; 和派生类: class derClass : public baseClass { public: derClass() { }; }; 当我创建derClass的实例时,调用baseClass的构造函数。如何防止这种情况发生?基类实例是任何派生类实例不可分割的一部分。如果成功构造派生类实例,则必须根据定义构造所有基类

假设我有一个基类:

class baseClass  
{  
  public:  
baseClass() { };

};
和派生类:

class derClass : public baseClass
    {  
      public:  
    derClass() { };

    };

当我创建
derClass
的实例时,调用
baseClass
的构造函数。如何防止这种情况发生?

基类实例是任何派生类实例不可分割的一部分。如果成功构造派生类实例,则必须根据定义构造所有基类和成员对象,否则派生对象的构造将失败。构造基类实例需要调用它的一个构造函数


这是继承在C++中如何工作的基础。

< P>附加一个空构造函数。< /P>
struct noprapere_tag {};

class baseClass  
{  
public:  
  baseClass() : x (5), y(6) { };

  baseClass(noprapere_tag) { }; // nothing to do

protected:
  int x;
  int y;

};

class derClass : public baseClass
{  
public:  
    derClass() : baseClass (noprapere_tag) { };

};
示例工作程序

#include <iostream>

using namespace std;
class A
{
    public:
    A()
    {
        cout<<"a\n";
    }
    A(int a)
    {}
};
class B:public A
{
    public:
    B() : A(10)
    {
        cout<<"b\n";
    }
   
};
int main()
{
    
    new A;
    cout<<"----------\n";
    new B;
    
    return 0;
}

你没有;那没有道理。你认为你为什么需要这样做?@GMan我有一个基类,其中的数据是用构造函数中的头准备的。派生类不需要准备标头,但它正在调用基类构造函数,而基类构造函数正在准备标头,并且会把一些事情搞砸。您缺少继承点。继承形成了“A是B”的关系。如果a B做了a不应该做的事情,那么a不是B。请阅读。询问您试图解决的整个问题,而不是您认为需要采取的步骤。更改基类,而不是派生类。>derClass():基类(noprapere_标记){};在这一行中,noprapere_标记不是对象,您不应该创建对象吗?
a                                                                                                        
----------                                                                                               
b