结构就是将
结构struct定义:
C++
1
2
3
4
5
6
7
8
structP//定义一个点结构
{
doublex;
doubley;
};
structEmpty//定义一个空的结构体没有数据成员,这样也可以的
{
};
结构struct在C++中其实合类class是一样的,只是默认访问方式不同。类默认访问是私有的,结构默认是公有的。看下下面这篇应该知道定义一个空的结构或类,其时C++帮我们定义了一些函数。
结构struct初始化
可以用像
C++
1
2
Pp1={11.3,2.2};
Pp2={11.3};//可以比定义的数据
初始化顺序,按结构成员的定义顺序来进行。
结构struct变量定义
将P结构当成一个新类型,比较之前的简单类型进行定义;可以定义普通变量,指针变量、引用变量。
C++
1
2
3
4
5
inta;
P p1;
int*b=newint;
p*p2=newp();
P&p3=p1;
结构struct成员的访问
成员访问方式有两个符号“.”,“->”;
C++
1
2
3
4
P p1={11.1,22};
p*p2=newp(1,2);
doublea=p1.x;
doubleb=p2->x;
从上面代码中应该可以看出,用“.”是普通变量,用“->”是指针变量。
结构中的位域
位域:是指信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
structSwitch8
{
unsignedA1:1;
unsignedA2:1;
unsignedA3:1;
unsignedA4:1;
unsignedA5:1;
unsignedA6:1;
unsignedA7:1;
unsignedA8:1;
};
//cout<
//可以用sizeof关键字测试占用字节数
这样用8位就定义了一个8位开关,一般这类用在时间定义上,因为时间是60,最多5位就够,还有用在硬体底层的一些定义上。
相关文章:dynamic_cast作用关键字dynamic_cast强制将一个类型转化为另外一种类型,并且在执行运行时时检查它保证它的合法性。如果你想在两个互相矛盾的类型之间转化时,cast的返回值将为NULL....
int作用int 关键字int 用来声明整型变量....
operator作用关键字operator 用于重载函数.在上面语法中用特殊符(#)描述特征的操作将被重载.假如在一个类中,类名应当被指定.对于一元的操作, parameter-list 应当为空, 对于二元的操作,在operator右边的 parameter-list 应当包含操作数 (在operand 左边的被当作 this通过)....
private作用属于私有类的数据只能被它的内部成员访问,除了friend 使用.关键字private 也能用来继承一个私有的基类,所有的公共和保护成员的基类可以变成私有的派生类....
default作用default swich语句中的缺省条件....
friend作用friend 关键字friend允许类或函数访问一个类中的私有数据....
mutable作用mutable 关键字mutable 忽略所有const 语句.一个属于const对象的mutable 成员可以被修改....
signed作用signed 关键字signed 用来修正数据类型,用来声明符号字符型型变量....
自定义类型联合union联合union与结构非常的类似,也是自定义类型。结构是将简单类型组成一起,联合union是也是将简单类型组在一起,但它占的内存是共用的。画个图应该会明白点。 联合还有很多运用,很多变化。只要记住一点就好,联合union是共用一块内存。这点记住了,不管再怎么运用变化,都能很快想明白。...
自定义类型枚举enum枚举enum没有新定义类型,结构是一个新类型这点可以从它们的定义看到,枚举的每个值没有类型,只有名字,结束用“,”结构类的成员都有自己的类型,有变量名,结束用“;”。其时枚举enum是整型变量,枚举enum的定义意义,就是以Arrow类型为例,它的取值只有4个,主要还是为了编程时方便管理,方便阅读,方便理解程序。运用有非常多,如颜色枚举、季节枚举、月份枚举、星期枚举等等。...