gpt4 book ai didi

c++ - get派生类访问彼此的成员数据和函数

转载 作者:行者123 更新时间:2023-11-28 06:28:33 24 4
gpt4 key购买 nike

如何让派生类互相访问成员数据和函数。这两个类都是作为纯抽象从基类继承的。

这里是我的场景

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 {}
};

关于c++ - get派生类访问彼此的成员数据和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28090141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com