gpt4 book ai didi

c++ - 为什么编译器不在 Derived 类构造函数的定义中提示?

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

请注意 Derived类构造函数有 ii作为它的第一个参数,但参数传递给了Base等于i故意。

class Base
{
protected:
int i;

public:
Base(int i) : i(i) {}
};

class Derived : public Base
{
private:
int k;

public:
Derived(int ii, int k) : Base(i), k(k) {} // Why not C2065: 'i' undeclared identifier
};

int main()
{

}

最佳答案

因为i是继承自Base的成员变量,所以定义的。您可以自由访问初始化列表中的成员变量,但您正在做的是在初始化之前访问变量,我认为这是未定义的行为。

关于c++ - 为什么编译器不在 Derived 类构造函数的定义中提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8113697/

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