我有三个继承如下的类:
Class_A
Class_B : public Class_A
Class_C : public Class_B
Class_A
包含一个构造函数:
public: Class_A(const char *name, int kind);
Class_B
不包含该构造函数。
在 Class_C
中,我希望调用 Class_A 的构造函数。像这样的东西:
Class_C(const char *name, int kind) : Class_A::Class_A(name,kind) {
}
问题是我无法向 Class_B
添加中间构造函数,因为 Class_B
是生成的代码,每次我 make clean 时都会重新生成。所以我无法对 Class_B
进行任何持久更改。不用说,Class_C
中构造函数的上述行给出了错误:“type 'Class_A' is not a direct base of '
Class_C'”。
有没有一种方法可以在子类 Class_C
中调用 Class_A
的构造函数,而无需在 Class_B
中调用相同类型的构造函数?
最佳答案
如果您不能更改生成 B
的代码,那么您就不走运了,AFAIK。但是如果 A
类包含这样一个构造函数,也许您可以添加一个简单的成员函数来设置这两个变量并从 C
构造函数内部调用它?可能没有它得到的那么高效,但至少它有效。
关于c++ - 是否有可能调用一个父类(super class)的构造函数,两个类远离 C++ 中的当前类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5961771/