我有以下代码:
class Base {
// Some code
Base(int y) {}
}
class Derived : Base {
int test;
Derived(int x);
}
Derived::Derived(int x) : Base(x) {
// Some code and calculation to generate vale of test
test = val;
}
我正在使用标志“-Weffc++”进行编译。我收到警告“测试需要在初始化列表中进行初始化。”
但我不能这样做,因为我需要做很少的计算来生成测试值。
所以为了避免这个错误,我确实尝试了'-Wno-reorder'标志,但它没有用。我也不喜欢它,因为它会为所有代码禁用此警告,我只想针对这种特定情况禁用此警告。
我还使用'#pragma GCC diagnostic ignore -Weffc++' 来完成它,它放在 cpp 文件中的构造函数之前,它确实有效。但是我需要在所有要避免此警告的构造函数中添加编译指示。
但是有没有更好的方法来避免特定代码的 Weffc++ 初始化列表顺序警告。或者有没有办法解决这个警告?