游戏开发之类的初始化成员列表和委托构造函数(C++基础)
游戏开发之类的初始化成员列表和委托构造函数(C++基础)
构造函数和其他函数不同,除了有名字,参数列表,函数体之外还有初始化列表。
委托构造函数 作用主要是程序员自己不想初始化,交给编译器初始化。
可初始化成员变量、父对象、成员变量。
初始化成员列表语法:类名(参数列表):初始化列表[成员变量名(值,即给成员变量赋值)]{函数体}
委托构造函数语法:类名(参数列表):[类名(参数列表)]{函数体}
TIPS:初始化列表和委托构造函数都是先执行初始化列表或委托构造函数的委托项才会执行本函数的函数体。
实例一:
class A{public://初始化成员列表格式A():m(100){std::cout << "默认构造调用" << std::endl;p = new int;}int *p;~A(){std::cout << "析构函数调用" << std::endl;delete p;}//委托构造函数格式A(int a_,int b_):A(){a = a_;b = b_;std::cout << "2个参数" << std::endl;}//委托构造函数格式A(int a_):A(){a = a_;b = 0;std::cout << "1个参数" << std::endl;}//初始化成员列表格式A(char b, int a_ = 200):m(300){a = a_;std::cout << "有1个默认参数" << std::endl;}const int m;//初始化列表:只有构造函数有这种写法//可初始化成员变量、父对象、成员变量//语法:类名(参数列表):初始化列表[成员变量名(值,即给成员变量赋值)]{函数体}//委托构造函数:自己不想初始化,交给编译器初始化//语法:类名(参数列表):[类名(参数列表)]{函数体}//注意:初始化列表和委托构造函数都是先执行初始化列表或委托构造函数的委托项才会执行本函数的函数体private:int a;int b;};int main(){if (true){A a;}A a1(1, 2);A a2(1);A a3('b');A a4;return 0;}
实例二:
class A{public:#if 0//传统方式A(int a, int b, int c) { _a = a; _b = b; _c = c; }#else//初始化列表方式A(int a, int b, int c) :_a(a), _b(b), _c(c) {}#endifprivate:int _a;int _b;int _c;};
游戏开发之类的初始化成员列表和委托构造函数(C++基础)相关推荐
- c++初始化成员列表_C++ 类构造函数初始化列表
关注我们更多精彩等你发现! 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式.例如: 上面的例子中两个构造函数的结果是一样的.上面的构造函数 ...
- c++中类的构造函数的初始化成员列表详解
昨天傍晚在阅读OpenCV的程序时看到代码如下: inline Mat::Mat() : size(&rows) { initEmpty(); } 第一行中单冒号及其后边的内容我完全不 ...
- 游戏开发设计模式之状态模式 有限状态机 c#委托事件(unity3d 示例实现)
命令模式:游戏开发设计模式之命令模式(unity3d 示例实现) 对象池模式:游戏开发设计模式之对象池模式(unity3d 示例实现) 原型模式:游戏开发设计模式之原型模式 & unity3d ...
- 【Visual C++】游戏开发笔记三十三 浅墨DirectX提高班之二 化腐朽为神奇:DirectX初始化四步曲
这篇文章里,我们将迈出精通DirectX的第一步,先了解典型Direct3D程序的书写流程,然后学习COM接口的对象的一些思想,然后按照"四步曲"的思路,系统地学习DirectX的 ...
- 【Visual C++】游戏开发笔记三十三 浅墨DirectX提高班之二 化腐朽为神奇:DirectX初始化四步曲...
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhmxy555/article/details/8197792 作者:毛星云(浅墨) ...
- 【Visual C++】游戏开发笔记三十三 浅墨DirectX提高班之二 化腐朽为神奇 DirectX初始化四步曲
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8197792 作者:毛星云(浅 ...
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
一般我们进行成员变量初始化用两种方法 第一种是通过在构造函数内赋值 class Point { public: Point(){ _x = 0; _y = 0;}; Point( int x, int ...
- 构造函数初始化列表初始化成员变量的顺序
构造函数采用初始化列表进行初始化时,成员变量的初始化顺序(与声明顺序有关) 最近学C++的时候一直很迷惑,特别是组合类的构造函数的执行顺序,一直都让我很头疼(下一篇博客再分享吧),在这里和大家分享一下 ...
- Cocos2d-x地图随精灵无限滚动与边缘检测----之游戏开发《赵云要格斗》(3)
这里是Evankaka的博客,欢迎大家前面讨论与交流------ 转载请注明出处http://blog.csdn.net/evankaka/article/details/42439707 ...
- Unity 3D游戏开发学习教程
用C#用Unity3D制作游戏 你会学到: 您将学习3D游戏开发基础知识,以使用Unity3D引擎推进事物. 到本课程结束时,他们将可以轻松制作任何类型的游戏,无论是3D还是2D MP4 |视频:h2 ...
最新文章
- OpenGL教程——GLUT初始化
- 【转】 vi常用操作
- Vue中绑定值与字符串拼接以及结合三目表达式实现是否为空判定的使用
- Spring+Quartz 集群
- c++ 操作mysql_C++操作mysql方法总结(1)
- kingcms的标签
- Spark的RDD概要DAG概述
- pca百分比取多少比较好_防晒霜指数多少比较好?防晒霜SPF多少够用
- windows操作系统下新建txt文件快捷键
- 【UCSC Genome Browser】比老东家还出名的基因组数据库
- 机器学习入门概念--心血总结--史上最强--入门必读--回味无穷
- 短信宝发送短信验证码
- 优美的曲线(含蝴蝶线)-CoCube
- 累加器 java_Spark笔记之累加器(Accumulator)
- Java添加过滤器过滤xss入侵
- debian技术--搭建debian软件仓库
- Crash 工具使用
- 搞嵌入式的,为啥要有uboot?
- 艾永亮:超级产品战略助戴森品牌C位出道,它却在汽车行业栽跟头
- 出现The specified base path ““ contains a package but “catkin_make“ must be invoked...的解决方法
热门文章
- PyTorch学习—16.PyTorch中hook函数
- 机器学习—LightGBM的原理、优化以及优缺点
- 数据挖掘实战—基于水色图像的水质评价
- 从你王者荣耀爱玩的英雄类型,我就知道你关注哪些技术领域!
- 用JavaScript来写浏览器上的应用
- Linux核心应用命令速查
- 【pandas】column变index,dataframe转置
- linux中移动光标的命令,linux命令行中常用光标移动快捷键
- nginx php mysql zend_性能测试基本功 - 手动配置nginx+php-cgi+zend+mysql
- 蓝桥杯2019年第十届C/C++省赛B组第八题-等差数列