gpt4 book ai didi

c++ - 帮助解决这些警告。 [遗产]

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:51 27 4
gpt4 key购买 nike

我有一组代码,它模拟了一个基本的图书馆编目系统。有一个名为 items 的基类,其中定义了通用 id、title 和 year 变量以及其他 3 个派生类(DVD、Book 和 CD)。

基础[元素]

派生 [DVD、书籍、CD]。

程序运行,但我收到以下警告,我不确定如何解决这些问题。

>"C:\Program Files\gcc\bin/g++"  -Os -mconsole -g -Wall -Wshadow -fno-common mainA4.cpp -o mainA4.exeIn file included from mainA4.cpp:5:a4.h: In constructor `DVD::DVD(int, std::string, int, std::string)':a4.h:28: warning: `DVD::director' will be initialized aftera4.h:32: warning:   base `Items'a4.h:32: warning:   when initialized herea4.h: In constructor `Book::Book(int, std::string, int, std::string, int)':a4.h:48: warning: `Book::numPages' will be initialized aftera4.h:52: warning:   base `Items'a4.h:52: warning:   when initialized herea4.h: In constructor `CD::CD(int, std::string, int, std::string, int)':a4.h:66: warning: `CD::numSongs' will be initialized aftera4.h:70: warning:   base `Items'a4.h:70: warning:   when initialized here>Exit code: 0

最佳答案

当您在类中声明成员变量时,它们会按照您声明它们的顺序进行初始化。但是您可以在构造函数的初始化列表中以任何顺序编写它们。例如,

struct foo {
int a;
int b;

foo(): b(5), a(3) {}
};

将构建 athen b,即使看起来您正在以其他顺序初始化它们。

编译器会发出警告,因为您可能会欺骗自己编写不正确的代码。例如,

struct foo {
int a;
int b;

foo(): b(5), a(b) {}
};

a 的值将是未定义的。

关于c++ - 帮助解决这些警告。 [遗产],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2752469/

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