[英]get derived classes access the member data and functions of each other
如何使派生类访问彼此的成员数据和函数。 这两个类都是作为纯抽象从基类继承的。
这是我的情况
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;
};
可能您需要重新考虑您的设计。 将不会为Derived2的对象分配给a1的内存,也不会为a2和Derived1分配类似的内存。 您的要求等同于说,猫和狗都是动物,我想在狗中使用cat :: whiskers。 您可能需要此:
class Base
{
public:
virtual void do_something() = 0;
};
class Derived : public Base
{
public:
int a1;
int a2;
void func(){}
};
class Derived1 : public Derived
{
public:
virtual void do_something()
{
// can use a2 and func here
}
};
class Derived2 : public Derived
{
public:
virtual void do_something()
{
// need to use a1
}
void func() override {}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.