在类外面对在类中声明的静态变量做的定义是在第一次定义这个类的对象之前执行的么?
本帖最后由 shendaowu 于 2013-07-24 08:44:54 编辑 标题好像有点绕。
类似这样的东西:
#include <iostream>用这种方法是否可以实现其他语言中的静态构造函数的功能?就是在定义第一个这个类的对象之前对静态函数进行初始化的构造函数。如果
using namespace std;
class Test
{
public:
void show();
private:
static char* sm_str[];
};
void Test::show()
{
cout << sm_str[0] << " " << sm_str[1] << endl;
}
char* Test::sm_str[] = { "abc", "123" };
int main()
{
Test t0;
t0.show();
return 0;
}
char* Test::sm_str[] = { "abc", "123" };定义在于某个类和头文件对应的cpp文件中的话,也能保证会在定义第一个这个类的对象之前执行么?这个不算全局变量吧?所以不会影响到可读性吧?这是我之前问的相关的问题: