请勿重复提出我的问题。我想强迫错误发生!!!!我不是在问如何解决错误。谢谢。
我听说,如果在头文件中初始化静态成员varibale,并且如果头文件包含在许多不同的源文件中,则将发生链接错误。我相信这一点。
但是,我没有强迫错误发生。我的程序始终可以成功编译。有人说,包括卫士防止错误。即使我摆脱了包含卫士,它仍然起作用。
s1.h
#ifndef S1_H
#define S1_H
class S
{
public:
S();
static int num; // just make it public so that it can be used
};
int S::num = 10;
#endif // S1_H
main.cpp
#include "s1.h"
#include <QDebug>
int main()
{
qDebug() << S::num;
}
test.cpp
#include "s1.h"
#include <QtDebug>
class Test
{
public:
Test();
void printNum() {qDebug() << S::num;}
};