静态成员对象的初值问题!!解决立即给分! 在什么地方给静态成员对象赋初值?我的静态成员对象是一个CStringArray类对象。我希望在使用静态成员函数对这个对象操作之前,Array中已有预设的初值,如何做到? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 知道静态成员与全局变量的相似之处就可以了。比如,你可以写一个Init的静态成员函数专门用于初始化之,在程序的开始运行处,当然就你这种情况是尽可能早的调用这个Init来完成初始化,如果你使用MFC可以在App类的InitInstance函数中调用之完成初始化。 使用构造函数当然也可以,但是每次定义一个该类的实例就会引发静态成员的重新初始化,那么这个成员成为静态的就失去意义了。因为那样的化,去掉static效果是完全一致的。之所以使用静态是为了让该变量的生命周期能够跨越不同的类实例。 class A{ static int m;};class A::m=数值;main(){...} class A{ static int m;};class A::m=数值;main(){...} Chice_wxg() 给出的是标准的静态成员初始化方法。但是对于一些比较复杂的静态成员变量给出一个对应的初始化静态函数更有灵活性。因为你可以在想重新初始化时调用它,并且保持很好的语义。 就是大家说的这些问题,如使用静态函数操作这个对象,那么不调用构造函数,对于class A::m=数值,则m只能是简单数据,我的m是一个Array,赋初值要用.Add(),所以也不能用!看来只能令写一个静态函数INIT,专门赋值?没有其实办法吗?我就是想问有没有类似class A::m=数值;的赋初值方法?但对m的赋值要调用m的函数 在类的实现文件.cpp中给类的静态成员变量赋初值。如:int CYourClass::YourStaticmember = 12; 我的意思是,静态变量是对像,比如CStringArray类对像对CStringArray类对像在哪儿用Add? 多文档程序中,自定义的类如何获取当前view类的指针 MFC 对话框JPG图片背景 透明控件显示问题 MFC程序中printf的问题 的不到图标怎么解决? 如何将定长 字符串数组,转化为 char* 类,以便 用strcmp 比较? 计算机动画,那位能给个动画系统的源程序 那有TAPI帮助下载? 紧急求救 关于“文档/视图”结构的GetDocument的问题? 哪位朋友有bho的toolbar上添加按钮或comobox的资料给我点? 请高手帮忙 我怎样才能同时实现多个定时器?
知道静态成员与全局变量的相似之处就可以了。
比如,你可以写一个Init的静态成员函数专门用于初始化之,在程序的开始运行处,当然就你这种情况是尽可能早的调用这个Init来完成初始化,如果你使用MFC可以在App类的InitInstance函数中调用之完成初始化。
使用构造函数当然也可以,但是每次定义一个该类的实例就会引发静态成员的重新初始化,那么这个成员成为静态的就失去意义了。因为那样的化,去掉static效果是完全一致的。
之所以使用静态是为了让该变量的生命周期能够跨越不同的类实例。
{
static int m;
};
class A::m=数值;main()
{
...
}
{
static int m;
};
class A::m=数值;main()
{
...
}
Chice_wxg() 给出的是标准的静态成员初始化方法。
但是对于一些比较复杂的静态成员变量给出一个对应的初始化静态函数更有灵活性。因为你可以在想重新初始化时调用它,并且保持很好的语义。
如使用静态函数操作这个对象,那么不调用构造函数,
对于class A::m=数值,则m只能是简单数据,
我的m是一个Array,赋初值要用.Add(),所以也不能用!看来只能令写一个静态函数INIT,专门赋值?
没有其实办法吗?我就是想问有没有类似
class A::m=数值;的赋初值方法?
但对m的赋值要调用m的函数
如:
int CYourClass::YourStaticmember = 12;
对CStringArray类对像在哪儿用Add?