我对Weffc++
警告有一个理解上的问题。
#include <iostream>
class A
{
public:
A() {}
~A() {}
void test() { std::cout << "Hello world\n"; }
};
class B
{
public:
B() {}
~B() {}
A a;
};
int main()
{
B b;
b.a.test();
return 1;
}
如果我编写或使用初始化列表,我没有问题。
A a = {};
我以为默认构造函数会自动调用?为什么我必须显式地使用他?
最佳答案
它会。
你不知道
就是这样一个警告。如果我们查看the documentation,就会发现-Weffc++
表示样式指南,仅此而已。是否要遵循迈耶斯的风格完全取决于您。
如果您确实想遵循建议,则可以这样操作:
class B
{
public:
B() : a() {} // <-- a() in the ctor-initialiser
~B() {}
A a;
};
…或您已经显示的方式。
坦白说,我不会打扰。我不使用
-Weffc++
设置。关于c++ - GCC -Weffc++警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43188038/