您的位置:首页 > 编程语言 > C语言/C++

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语言