300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 吐槽C++:C++ 类成员变量初始化 之 初始化带有参数的构造函数 的类成员变量。...

吐槽C++:C++ 类成员变量初始化 之 初始化带有参数的构造函数 的类成员变量。...

时间:2021-07-31 05:40:27

相关推荐

吐槽C++:C++ 类成员变量初始化 之  初始化带有参数的构造函数 的类成员变量。...

本来我想写这样的代码:

class MatchManager{public:MatchManager(){}class OnTimerRunFuncHelper{public:OnTimerRunFuncHelper(const int setTimer) :n_ConfigTimer(setTimer){n_Timer = 0;}//返回true 则计时器到了 可以进行你的函数了bool OnTimerCheck(){n_Timer++;if (n_Timer == n_ConfigTimer){n_Timer = 0;return true;}return false;}public:const int n_ConfigTimer;//配置最大计时器int n_Timer;//计时器int GetTimerCount(){ return n_Timer; }int GetConfigTimerCount(){ return n_ConfigTimer; }};OnTimerRunFuncHelper t_checkEliminateTimer(2);};

但是C++编译器(vs)提示:

error C2059: 语法错误:“常量”

然后我查了一下,居然代码要这么写:

class MatchManager{public:MatchManager():t_checkEliminateTimer(2){}class OnTimerRunFuncHelper{public:OnTimerRunFuncHelper(const int setTimer) :n_ConfigTimer(setTimer){n_Timer = 0;}//返回true 则计时器到了 可以进行你的函数了bool OnTimerCheck(){n_Timer++;if (n_Timer == n_ConfigTimer){n_Timer = 0;return true;}return false;}public:const int n_ConfigTimer;//配置最大计时器int n_Timer;//计时器int GetTimerCount(){ return n_Timer; }int GetConfigTimerCount(){ return n_ConfigTimer; }};OnTimerRunFuncHelper t_checkEliminateTimer/*(2)*/;};

类似的问题 还有比如 类静态成员变量的初始化,要在 cpp 文件 单独写一行,进行初始化。

我真是感觉C++ 误人子弟啊。Java 有些东西确实好,但是无法引用到C++中,就是因为这些 落后,但是却无人(主要是C++编译器厂商们、以及标准化组织)更改这些东西。

我真的希望有 C++的升级版 C++++ 能拥有Go语言 、java语言等的一些优点,并且兼容C++,但不被C++兼容。

蛋疼。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。