吐槽C++:C++ 类成员变量初始化 之 初始化带有参数的构造函数 的类成员变量。
本来我想写这样的代码:
class MatchManager{
public:
MatchManager()
{
}
class OnTimerRunFuncHelper{
public:
OnTimerRunFuncHelper(const int setTimer) :n_ConfigTimer(setTimer){
n_Timer = ;
}
//返回true 则计时器到了 可以进行你的函数了
bool OnTimerCheck(){
n_Timer++;
if (n_Timer == n_ConfigTimer){
n_Timer = ;
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();
};
但是C++编译器(vs2013)提示:
error C2059: 语法错误:“常量”
然后我查了一下,居然代码要这么写:
class MatchManager{
public:
MatchManager() :t_checkEliminateTimer()
{
}
class OnTimerRunFuncHelper{
public:
OnTimerRunFuncHelper(const int setTimer) :n_ConfigTimer(setTimer){
n_Timer = ;
}
//返回true 则计时器到了 可以进行你的函数了
bool OnTimerCheck(){
n_Timer++;
if (n_Timer == n_ConfigTimer){
n_Timer = ;
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++兼容。
蛋疼。
吐槽C++:C++ 类成员变量初始化 之 初始化带有参数的构造函数 的类成员变量。的更多相关文章
- C++变量的默认初始化规则
定义没有初始化式的变量时,系统有时候会帮我们初始化变量.系统如何初始化取决于变量的类型以及变量定义的位置. 内置类型变量是否自动初始化取决于变量定义的位置.函数体外定义的变量初始成0:函数体内定义的变 ...
- 从汇编看c++初始化列表初始化成员变量
简略来说,编译器会对初始化列表按照成员变量的声明顺序重新一一排序,安插到构造函数中进行初始化操作,而且这些初始化操作在构造函数里面用户自己定义的任何代码之前. 下面是c++源码: class X { ...
- java中的static(包括类前面修饰的static、方法前面修饰的static、成员变量前面修饰的static)
static是静态修饰符: 什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个 ...
- C++类中引用成员和常量成员的初始化(初始化列表)
如果一个类是这样定义的: Class A { public: A(int pram1, int pram2, int pram3); privite: int a; int &b; const ...
- Java类的初始化顺序 (静态变量、静态初始化块、变量、初始...
很有意思的一篇文章 1.没有继承 静态变量->静态初始化块->变量->变量初始化块->构造方法 2.有继承的情况 父类静态变量->父类静态初始化块->子类静态变量- ...
- 【C++】const,static和static const类型成员变量声明及其初始化
1)const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间 void f1() { ; cout<<x<<endl; ...
- C++中类中常规变量、const、static、static const(const static)成员变量的声明和初始化
C++类有几种类型的数据成员:普通类型.常量(const).静态(static).静态常量(static const).这里分别探讨以下他们在C++11之前和之后的初始化方式. c++11之前版本的初 ...
- C++ static、const和static const类型成员变量声明以及初始化
C++ static.const和static const 以及它们的初始化 const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间. sta ...
- 【转载】C++ 与“类”有关的注意事项总结(十二):按成员初始化 与 按成员赋值
原文:C++ 与"类"有关的注意事项总结(十二):按成员初始化 与 按成员赋值 一.按成员初始化(与构造函数和拷贝构造函数有关) 用一个类对象初始化另一个类对象,比如: Accou ...
随机推荐
- iOS 1 到 iOS 10 ,我都快老了
iOS 1:iPhone诞生 虽然很难想像,但初代iPhone在问世时在功能方面其实远远落后于那时的竞争对手,比如Windows Mobile.Palm OS.塞班.甚至是黑莓.它不支持3G.多任务. ...
- 你必须了解的基础的 Linux 网络命令
Linux 基础网络命令列表 我在计算机网络课程上使用 FreeBSD,不过这些 UNIX 命令应该也能在 Linux 上同样工作. 连通性 ping <host>:发送 ICMP ech ...
- JS初级-作用域
作用域:域:空间.范围.区域--作用:读.写 script 全局变量.全局函数 自上而下 函数 由里到外 {} 浏览器 ...
- log4j日志
1.引入的包 2.配置文件 该文件放到src路径下, log4j.rootLogger=DEBUG,CONSOLE,A1,im #DEBUG,CONSOLE,FILE,ROLLING_FILE,MAI ...
- HTTP 头部
通用头域(即通用头) 通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-Control. Connection.Date.Pragma.Transfer-Encoding.Upgra ...
- Android相机使用(系统相机、自定义相机、大图片处理)
本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理(避免OOM),还有简要提一下有些人Surf ...
- java后台开发传输乱码&&接口post传参失败
起因: 前几天遇到的问题,才有时间记录,需求:本地生成xml形式的字符串以参数形式用post方法传送到对方的固定接口: 这个需求写的时候感觉很容易,本地测试的时候,也觉得很简单就过了,然后和对方联调的 ...
- 解析posix与perl标准的正则表达式区别
解析posix与perl标准的正则表达式区别 作者: 字体:[增加 减小] 类型:转载 本篇文章是对posix与perl标准的正则表达式区别进行了详细的分析介绍,需要的朋友参考下 正则表达式(Regu ...
- LINUX RHEL AS 4 + ORACLE10G安装详解
第一部分:LINUX RHEL AS 4 安装 运行提示: 1)按键盘的前后键可以调节光标所在的位置 2)在选项前面的括号中打上*号或者去掉*号,选中这条选项用空格键操作 3)在vi编辑文件时,键盘按 ...
- 转:DataTable的Compute方法的应用
转自:http://www.cnblogs.com/hfliyi/archive/2013/01/08/2851944.html 项目中遇到计算平均值.标准偏差.平均值+标准偏差.平均值+2倍标准偏差 ...