派生构造函数警告:永远不会被执行
Derived constructor warning: will never be executed
大家好
我刚刚有一些奇怪的问题,而推进c++,使用Code::Blocks 10.05, FreeBSD 9.1
Source in lib.cpp:
class A{
public:
A();
A(var1, var2);
};
A::A(){ imlementation }
A::A(va1, var2) {implementation }
class B : public A{
public:
B();
B(var1, var2);
};
B::B() : A() {} // this is Astr#
B::B(var1, var2) : A(var1, var2) {} // this is Bstr#
Source in lib.h:
class A{
public:
A();
A(var1, var2);
};
class B : public A{
public:
B();
B(var1, var2);
};
Source in main.cpp:
#include "lib.h"
...
int main(){
...
B* Bptr = new B();
B* Bptr2 = new B(var1, var2);
...
}
我得到这些构建警告:
.../lib.cpp||In constructor 'B::B(var1, var2)':
.../lib.cpp|Bstr#|warning: will never be executed
.../lib.cpp||In constructor 'B::B(var1, var2)':
.../lib.cpp|Bstr#|warning: will never be executed
.../lib.cpp||In constructor 'B::B()':
.../lib.cpp|Astr#|warning: will never be executed
.../lib.cpp||In constructor 'B::B()':
.../lib.cpp|Astr#|warning: will never be executed
||=== Build finished: 0 errors, 4 warnings ===|
此警告仅在调试模式下出现,发布版本似乎正常。代码构建和运行良好,但我做错了什么?
lib.h中的构造函数B(var1,var2)
是私有的
警告:永远不会被执行
是GCC的警告,可以通过-Wunreachable-code
启用。-Wunreachable-code
非常不可靠,不宜使用;因此,在较新的GCC版本中,整个选项被完全删除了。(实际上,并没有完全删除:命令行选项-Wunreachable-code
仍然存在,但它不再做任何事情。)
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- C++,系统无法执行指定的程序
- 使用C++中的模板和运算符重载执行矩阵运算
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 执行函数时导致崩溃的变量
- 无论条件是否为true,if总是在c++中执行
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 在C++中对T*类型执行std::move的意外行为
- 使用QProcess执行命令,并将结果存储在QStringList中
- 如何在没有信号的情况下从C++执行QML插槽
- 如何确认我的constexpr表达式实际上已经在编译时执行
- C++17中的并行执行策略
- QML按钮点击功能执行顺序
- 程序在执行程序的其余部分之前退出
- 为什么catch中的代码没有被执行
- if 语句"您的代码将永远不会被执行"
- 虽然循环中断,但之后的代码永远不会执行
- Boost read()永远不会返回,即使在服务器上执行写(ssl) Boost
- 循环将最多运行一次(循环增量永远不会执行)
- 派生构造函数警告:永远不会被执行