classFoo{public:constintx;};classBar{private:constintx;};输出:test.cpp:10:13:warning:non-staticconstmember‘constintBar::x’inclasswithoutaconstructor[-Wuninitialized]为什么Bar会产生警告而Foo不会(显然是因为访问限定符,但逻辑是什么?)。 最佳答案 有了这些定义,由于Foo::x是公开的,你可以有效地实例化一个Foo类似的东西:Foof{0};//C++11或Foof={
一个简单的程序:intmain(){longi=i;return0;}编译为C不会出现错误和警告。$gcc-Wall-Wextra-pedantic1.c编译为C++会给出警告:$c++-Wall-Wextra-pedantic1.c1.c:Infunction‘intmain()’:1.c:3:7:warning:‘i’isuseduninitializedinthisfunction[-Wuninitialized]longi=i;在这两种情况下,变量i似乎都是0,尽管在c++中它可能未初始化。实际上,我在我的一个函数中犯了这样的错字,很难找到它。我能做些什么来避免这种情况?我希望
一个简单的程序:intmain(){longi=i;return0;}编译为C不会出现错误和警告。$gcc-Wall-Wextra-pedantic1.c编译为C++会给出警告:$c++-Wall-Wextra-pedantic1.c1.c:Infunction‘intmain()’:1.c:3:7:warning:‘i’isuseduninitializedinthisfunction[-Wuninitialized]longi=i;在这两种情况下,变量i似乎都是0,尽管在c++中它可能未初始化。实际上,我在我的一个函数中犯了这样的错字,很难找到它。我能做些什么来避免这种情况?我希望