【发布时间】:2020-05-22 06:05:31
【问题描述】:
您好,我有一个派生类,我想将派生类对象的指针传递给基类。 运行代码时出现分段错误。
#include <iostream>
using namespace std;
class A {
public:
virtual void x() = 0;
A* a;
};
class B: public A {
public:
B(A* x) {
a = x;
}
void x () {}
};
class C: public B {
public:
C() : B(new C) { }
};
int main() {
C c;
return 0;
}
谁能帮我提出一个实现这一目标的方法或帮助我修复代码。
【问题讨论】:
-
C() : B(new C)?你知道new C创建新的C对象,然后调用C构造函数,然后创建new C,然后调用C构造函数,然后.. -
很确定你有无限递归,创建
C需要创建new C,这需要创建new C...你明白了 -
我要调用基类构造函数,并以派生类的对象指针为基
-
请问你的最终申请是什么?
-
你认为你为什么需要它?
标签: c++ inheritance