【发布时间】:2015-01-22 13:37:25
【问题描述】:
如何让派生类访问彼此的成员数据和函数。这两个类都作为纯抽象从基类继承而来。
这是我的场景
class Base
{
public:
virtual void do_something() = 0;
};
class Derived1 : public Base
{
public:
virtual void do_something()
{
// need to use a2
// need to use func
}
private:
int a1;
};
class Derived2 : public Base
{
public:
virtual void do_something()
{
// need to use a1
}
void func(){}
private:
int a2;
};
【问题讨论】:
-
你这里没有任何推导。您忘记了基类子句。
-
奇怪的想法...但是您可以在使用的类中存储所需类的引用/指针(对 Derived1 中的 Derived2 对象的引用等)。此外,您可以将您的类重写为模板类...
-
@SebastianRedl .. 我错过了。我更新了谢谢
-
您为什么要这样做?如果您非常想访问它,可以将其作为参数传递给函数,或者您可以像在派生类中使用它们一样在基类中声明这些变量。
-
第一:这是一个坏掉的设计。第二:你做不到。您的 Derived2 类没有成员 a1。就是这样!
标签: c++ inheritance