c++ - 忽略特定代码的 weffc++ 初始化列表顺序警告
问题描述
我有以下代码:
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++ 初始化列表顺序警告。或者有没有办法解决这个警告?
解决方案
Derived::Derived(int x) : Base{ x }, test{} // shut up the compiler.
{
// Some code and calculation to generate vale of test
test = val;
}
推荐阅读
- python - 如何使用 Python 从 AWS 机器访问 Github 中的 Excel 数据
- php - 安装插件时出现 Wordpress“FORCE_SSL_ADMIN 已定义”
- javascript - 使用 javascript 填充选项下拉列表
- c - 在C中将char转换为int,然后将值printf为int?
- javascript - onSelectSlot 在移动反应大日历中不起作用
- java - 在java中打印二维矩阵
- node.js - async/await 函数未按正确顺序执行
- javascript - Python 在我的 JavaScript 代码中的 getattr 等价物?
- wordpress - Nginx 下载 index php 而不是在 Wordpress 站点中提供它
- jar - 部署应用程序时出现异常无效的 ejb jar:它包含零 ejb