C++中另一个类的构造函数参数中的类参数

C++中另一个类的构造函数参数中的类参数

问题描述:

有人能帮我解决这个问题吗?这听起来很简单,但我很难。C++中另一个类的构造函数参数中的类参数

class Base { 
    int x; 
    int y; 

public:  
    Base(int a, int b) : x(a), y(b) {} 

}; 

class Derived : public Base { 
    Base a; 
    Base b; 
    Base c; 
    std::string name; 

public: 
    Derived(Base a_, Base b_, Base c_, std::string name_): a(a_), b(b_), c(c_), name(name_) {} 
}; 

这是问题所在。我似乎无法初始化,我尝试了几种方法并搜索了网页,但我无法找到正确答案。

int main() { 
    Derived var1({1,2}, {3,4}, {5,6}, "TEST"); 
} 
+0

如果您在class2中唯一需要的是3个class1成员,则不应从class1继承class2。 – grigor

class1构造函数有两个参数:

class1(int a, int b) 

class2继承class1,然而class2的构造未能将两个必需的参数传递给它的超类。

+0

那么这里有什么解决方案?因为我有一个练习,使我初始化这个,我不能公开私人成员。我无法想象如何声明这一点。 – Miguel

+0

要么将​​正确的参数传递给超类,要么没有从'class1'继承'class2'。没有其他选择。这就是C++的工作原理。 –

+0

这可能听起来很愚蠢,但在这个例子中如何将正确的参数传递给它的超类?我已经在这附近呆了好几个小时了。 – Miguel