gpt4 book ai didi

c++ - 关于继承中 protected 成员的问题

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:00 25 4
gpt4 key购买 nike

我相信 protected 成员可以通过继承类访问。那么,我在认为这是可以的思维过程中犯了什么错误?

我有一些类,Food 和 Veg,其中 Veg 继承自 Food。食物有一个 protected 成员 int age;在 Veg 的构造函数中,我尝试将 age 初始化为 0。为什么这无效?

一些代码...

Veg::Veg():age(0)
{
cout << "Veg constructor." << endl;
}

class Veg : public Food
{
//snip
};

class Food
{
//snip
protected:
int age;
};

最佳答案

在类 C 的构造函数的初始化列表中,您只能初始化

  1. C类的直接基类,
  2. C 的虚拟基类,和
  3. C 类的非静态数据成员。

如果要初始化基类的数据成员,则需要在基类构造函数的初始化列表或派生类构造函数的主体中进行。您不能在派生类的构造函数的初始化列表中执行此操作。

关于c++ - 关于继承中 protected 成员的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5255368/

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