1、结构体指针
(*结构体指针名).成员名 = 结构体指针名->成员名
例如:结构体指针P指向的结构体变量中的成员name可以表示如下:
(*P).name or p->name
2、函数调用结构体的常用做法:
与数组在函数间传递一样,结构体传递函数时,一般采用地址传递方式,即把结构体变量(或数组)的存储地址作为参数向函数传递,函数中用指向相同结构体类型的指针接受该地址值。然后,在函数中通过这个结构体指针来处理结构体变量(或数组)中各项数据。
3、结构体和共用体的差异仅仅在内存使用上。
结构体变量在存储时,是按照各成员的数据长度之和占用内存空间。
共用体变量在存储时,是按照成员数据最长的成员数据长度占用的内存空间。
4、共用体类型变量a,有以下几个赋值语句
a.i=1;
a.c='a';
a.f=1.5;
完成以上三个赋值运算以后,a.f是有效的,a.i和a.c已经被覆盖了。(因为共用体存在在一个内存空间中)
5、面向对象和类:
在类定义体外定义成员函数时,需要在函数名前加上类域标记(::)
6、结构和类,结构是类的特例。结构和类的唯一区别是,在未指定访问权限时,结构
中的成员被默认为共有的public,而类中的成员默认是私有的private。其他方面是一样的。
一般在描述数据时候使用 结构。
在描述数据及对数据操作时用 类。
7、<对象指针名> -> <成员名> 与 (*<对象指针名>).<成员名>
是等价的。推论和 <对象名>.<成员名>
同样是等价的。
8、编程的时候要锻炼自己,习惯写上构造函数和析构函数。
构造函数的工作是建立对象的基本结构,进行数据初始化。
即:初始化虚函数表;建立基类对象;建立非静态数据成员对象;
安置虚基类对象信息;执行构造函数体中的代码。
析构函数的工作是:执行析构函数中的代码,将对象占用的存储空间归还系统。
9、类的初始化:
(1)、带有构造函数的类的初始化。
class x
{
public:
x();
x(int i);
private:
int i;
}
main()
{
X one;
X two(1);
X three =1;
}
构造函数可以用两种方式把值赋给成员:
class x
{
int a,b; //默认为private成员
public:
x(int i,int j)
{ a=i;b=j;}
}
冒号语法,在定义const变量的时候常用
class x
{
int a,b;
public:
x(int i,int j) : a(i),b(j) {};
}