美好的一天,先生和妈妈)
我在使用Code :: Blocks 10.05,FreeBSD 9.1
进行c ++编程时遇到了一些奇怪的问题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#
lib.h中的来源:
class A{
public:
A();
A(var1, var2);
};
class B : public A{
public:
B();
B(var1, var2);
};
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 ===|
此警告仅在调试模式下出现,发布版本似乎没问题。 代码构建并运行良好,但我做错了什么?
答案 0 :(得分:3)
lib.h中的构造函数B(var1,var2)
是私有的。
答案 1 :(得分:0)
警告:永远不会被执行
是GCC的警告,可以使用-Wunreachable-code
启用。 -Wunreachable-code
非常不可靠,不应该使用;由于这个原因,在较新版本的GCC中完全删除了整个选项。 (实际上,并未完全删除:命令行选项-Wunreachable-code
仍然存在,但它不再执行任何操作。)