gpt4 book ai didi

c++ - 在继承 : Can I override base class data members?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:02 25 4
gpt4 key购买 nike

假设我有如下两个类:

Class A
{
public:
..
private:
int length;
}

Class B: public Class A
{
public:
..
private:
float length;
}

我想知道的是:

  1. 是否允许覆盖基类数据成员
  2. 如果是,这是一种好的做法吗?
  3. 如果不是,扩展类数据成员类型的最佳方法是什么?

有一个类满足了我的需求,我想重用它。但是为了我的程序需要,它的数据成员应该是另一种类型。

我有一些书,但它们都只涉及重写基类成员方法。

最佳答案

您可以使用模板化成员,即通用成员,而不是覆盖成员。

您还可以声明一个类似 union 的 VARIANT(COM)。

   struct MyData
{
int vt; // To store the type

union
{
LONG lVal;
BYTE bVal;
SHORT iVal;
FLOAT fltVal;
.
.
}
};

关于c++ - 在继承 : Can I override base class data members?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/501899/

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