【C/C++学习】函数初始化列表
2013-12-05 23:34
183 查看
在学习C++的过程中接触到了初始化列表这个概念。之前我还以为为构造函数中对各个变量的赋值是进行初始化呢,这个想法真是弱爆了,看到了初始化列表的描述和解释才知道原来真正的初始化和赋值的区别。不想过多把这个展开,随便引用一部分介绍。这个介绍写的挺好的。
转自:/article/4871747.html
在看的过程中我又了解到,初始化列表中不仅仅能够初始化基本类型的变量,像int,double,float等,还能初始化类类型和结构体。类类型我也可以理解,有构造函数,调用构造函数就行了,但是我没理解的是结构体怎么在初始化列表中使用,直接struct aa(x,y,z)这样么?试了一下,这样不行。查了一下,了解到实际上结构体和类很相似,可以有成员,也可以有函数、构造函数。之所以不能像刚才那样在初始化列表中是因为结构体默认是没有参数的构造函数,所以不能行。在struct中定义了一个新的构造函数,再在初始化列表中进行对结构体的初始化就没有问题了。(顺便说一下,结构体的变量默认是public的,类的默认是private的,这个是一个区别)
简单的代码(是一个window控制台程序)、
转自:/article/4871747.html
在看的过程中我又了解到,初始化列表中不仅仅能够初始化基本类型的变量,像int,double,float等,还能初始化类类型和结构体。类类型我也可以理解,有构造函数,调用构造函数就行了,但是我没理解的是结构体怎么在初始化列表中使用,直接struct aa(x,y,z)这样么?试了一下,这样不行。查了一下,了解到实际上结构体和类很相似,可以有成员,也可以有函数、构造函数。之所以不能像刚才那样在初始化列表中是因为结构体默认是没有参数的构造函数,所以不能行。在struct中定义了一个新的构造函数,再在初始化列表中进行对结构体的初始化就没有问题了。(顺便说一下,结构体的变量默认是public的,类的默认是private的,这个是一个区别)
简单的代码(是一个window控制台程序)、
#include "stdafx.h" typedef struct tagMyStruct { int old; float height; tagMyStruct(int a,float b) { this->old = a; this->height = b; } }MyStruct; class MyTestClass { private: MyStruct myStruct; int testNum; public: MyTestClass(): testNum(0), myStruct(19,8.8) { } int GetTestNum() { return this->testNum; } int GetOld() { return this->myStruct.old; } float GetHeight() { return this->myStruct.height; } }; int _tmain(int argc, _TCHAR* argv[]) { MyTestClass myClass; printf("This is my class.testNum:%d,struct.old:%d,struct.height:%2f\r\n", myClass.GetTestNum(),myClass.GetOld(),myClass.GetHeight()); return 0; }
相关文章推荐
- C++初始化函数列表
- 写程序说明C++中成员函数的初始化顺序只跟在类中的声明顺序有关, 而跟初始化列表中的顺序无关(笔试考过)
- C++学习——构造函数初始化列表
- C++初始化列表学习
- VS2010 C++ 学习笔记(四) 1.数据的封装 2.类外定义 3.构造函数(无参,有参,重载,初始化列表,拷贝) 4.练习
- Effective C++学习笔记:初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- 【C++学习笔记】列表初始化规则
- C++ 学习之构造函数:构造函数小结2 构造函数初始化列表
- C++初始化函数列表
- C++构造函数的初始化列表和函数体内赋值有什么不同?
- C++初始化函数列表
- C++初始化函数列表详细解析
- c++中初始化列表的学习
- C++学习笔记--初始化列表
- 关于C++——理解C++默默编写并调用了哪些函数&&函数初始化式(初始化列表相关)
- C++初始化函数列表
- C++学习一初始化列表的执行顺序
- c++中子对象的初始化可在复合类的构造函数的函数体内进行吗?还是子对象的初始化只能在初始化列表中进行?
- C++基础学习笔记----第十课(初始化列表、析构函数)
- C++的6大成员函数,构造函数(初始化列表),析构函数,拷贝构造函数,运算符重载,const成员函数