gpt4 book ai didi

c++ - 如何避免来自继承的属性冗余

转载 作者:行者123 更新时间:2023-11-30 03:02:21 25 4
gpt4 key购买 nike

假设我有这个例子:

class A1
{
private:
string name;
}

class A
{
private:
A1* field;
}
class B1 : public A1
{
private:
int id;
}
class B : public A
{
private:
B1* field;
}

所以在这种情况下,我会在我的 B 类中:

  1. B1类的id属性
  2. name属性来自类A的继承。
  3. 另一个名称属性来自类 A1 的 B1 类继承。

那么我应该怎么做才能避免这种冗余?

最佳答案

我没有看到这里有任何冗余。让我们将这些类重命名为更有用的名称:

class Animal // A1
{
private:
string name;
}

class Person // A
{
private:
Animal* housePet;
}
class Dog : public Animal // B1
{
private:
int breedId;
}
class DogTrainer : public Person // B
{
private:
Dog* trainee;
}

您知道,没有任何字段可以安全地消除。 traineehousePet 不同,他们每个人都需要一个单独的name

关于c++ - 如何避免来自继承的属性冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10224942/

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