zoukankan      html  css  js  c++  java
  • 吐槽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++编译器(vs2013)提示:

    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++兼容。

    蛋疼。

  • 相关阅读:
    构建之法阅读笔记02
    学习进度
    构建之法阅读笔记01
    小学生的四则运算题
    构建之法----速读问题
    软件工程概论作业一
    分数 任意输入
    JAVA异常
    大道至简——第七、八章读后感
    super 要点
  • 原文地址:https://www.cnblogs.com/ayanmw/p/4702044.html
Copyright © 2011-2022 走看看