![]() |
#2
最近不在2010-04-28 14:52
|
小弟才接触c++不久,目前还正在学习c++,书上有如下一段话看了几遍还是不明白,小弟才疏学浅,还望各位高手们指点。
以下是书上原话:
“使用静态数据成员时还应该注意:如果要通过非静态函数来访问静态数据成员,应该使用非内联函数,而且访问静态数据成员的函数,其函数体的定义应该与静态成员的初始化写在同一个源程序文件中。因为静态数据成员再被访问之前必须初始化,而编译器只能保证在调用同一源文件中定义的任何非静态函数之前,初始化类的静态数据成员。一个项目可以由多个源程序文件构成,类的定义和静态数据成员的初始化、成员函数体的定义可以不在同一个源文件中。这种情况下,如果使用非静态的内联成员函数访问静态数据成员,有可能出现意料不到的错误。”
通过非静态函数来访问静态数据成员,一定要用非内联函数么?为什么?很多程序我用内联函数编译和运行结果都没出错啊,能不能举出一个出错的例子?
还有末尾说的“意料不到的错误”,能举出一个错误的例子么?
请各位高手帮忙.