C\C++ struct && class 综述
2016-12-09 22:58
357 查看
1.struct
1.1 struct的基本结构
struct Mystruct { int num; doble db=10.8; }; Mystruct mystruct1,*mystuct;
匿名结构体:(没有结构体标志符)
struct { int num; doble db }sx,sy;//匿名结构体不允许初始化
1.2 struct 内存
一片连续的内存空间,结构体成员内存相互独立。1.3 嵌套
一个结构体内部不能包含自己1.4访问结构体成员
使用“.”操作符。结构指针->结构成员;
(*结构指针).结构成员;
MyStruct mystruct1;//自用管理 MyStruct *mystruct=new Mystruct;//手动管理
1.5 对象初始化
C++是强类型,即便是成员相同,但是类型不同也不能使用”mysruct1(mystruct1)”初始化。定义一个struct类型:
struct User { int id; //id char name[100]; //user name char *home; //home directory int passwd; //password };
顺序初始化的特点是: 按照成员定义的顺序,从前到后逐个初始化;允许只初始化部分成员;在被初始化的成员之前,不能有未初始化的成员。
struct User oneUser = {10, "Lucy","/home/Lucy"};
初始化之后,oneUser各个成员的值为:
oneUser.id = 10; oneUser.name = "Lucy"; oneUser.home = "/home/Lucy"; oneUser.passwd = 0;
允许只初始化部分成员;未被初始化的成员默认为0(指针类型的成员默认为NULL)。两种乱序初始化方法,即可以用在C代码中,也可以用在C++代码中。
2.class
2.0 存储方式
类名,变量名都在栈上;类名 *指针名 = new 类名 //在堆上;
类的静态成员 静态区;
函数都在代码区,类的函数都是共享;
2.1
3.struct和class的区别
结构体实例(包括共用体)和类实例的初始化方法完全相同,二者都可以应用于继承层次中。不同点是结构体(包括共用体)默认成员为public,而类默认成员是private型的。4.c与c++中 struct/class的区别
4.1 设置默认值
C++结构体struct中可以使用默认值;C 中结构体不能使用默认值;相关文章推荐
- 在c++中 struct 和class
- c++ error: reference to 'plus' is ambiguous ; template<class _Tp> struct std::plus
- C++中class与struct的区别
- C++中class与struct的区别
- C++中class与struct的区别
- 在C中用struct实现C++中class的函数声明和定义
- C++中的struct和class
- C# struct & class Differences
- C++中class与struct的区别
- c++中Struct 与 Class的区别
- C++中class与struct的区别
- illegal use of incomplete struct/union/class 'CAknViewAppUi'
- C++中Struct与Class的区别
- 标题:C++中struct与class的区别是什么?
- c++中 class与struct的区别
- c++对象模型笔记:struct 和 class
- ·C++中struct与class结构的区别
- C++ 中 struct 与 class的区别
- C++中struct与class的区别
- C++中struct 和 class 的区别