soh*_*hel 4 c++ constructor initialization
我相信每个人都有时间面对丑陋的事情.
问题是在类中添加一个字段并忘记扩展初始化列表,例如:
class T{
private:
field1;
...
field10;
};
T::T( int speedValue ):
field1( Speed::MphToMps(speedValue) ),
field2( new OtherClass(14,5,15) ),
field3( PublicValueGenerator::generateNewFieldValue(0,15) ),
...,
field10( "unpredictable value" );
Run Code Online (Sandbox Code Playgroud)
如果赶时间我添加一些字段,比如newForgottenField,我不时会忘记设置初始值.正如我记得一些IDE可以给出一个提示,但是vim + addons是我的选择:)
所以MB有一些提示,以简化跟踪这样的情况下或拇指或粗鲁宏的一些规则,它会发出警告或编译时错误(这将是惊人的:))?你如何克服这个障碍?
最好的祝福
如果你正在使用g ++,那么它提供了一个选项,可以对违反Scott Meyer的Effective C++指南的结构发出警告:)
选项是:
-Weffc++
Run Code Online (Sandbox Code Playgroud)
请注意,它也会启用许多其他警告.此外,并非所有标准库标题都遵循Meyers guildelines.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |