C++链接错误:静态变量的初始化问题

2022-08-01  本文已影响0人  Caucher

在使用C++时,编译项目时偶尔会发生链接,这些错误很多时候是偶发的,可能再编一次,或者换个模式,换个参数,就没有编译错误了,但之后可能还会出现。由于是在编译阶段,问题不容易排查。这样的错误有可能就是静态变量的初始化问题。

好的,接下来我们深入剖析下这个问题:

顺便说一句,对于非静态变量,比如类中的成员变量,在构造函数中,尽量以初始化列表的方式初始化,即

A(int _a, double _b, B & _c)
: a(_a),b(_b),c(_c),d()
{}

如果在函数体内执行,实际上是用默认构造函数初始化了一次,又赋值了一次。
而且,如果是常量对象和引用对象,则必须如此初始化!!

参考资料:

上一篇 下一篇

猜你喜欢

热点阅读