类的一个对象就是一个实例
1、当一个对象生命周期结束时,其所占有的内存空间就要被回收,这个工作就由析构函数来完成。
2、析构函数是“反向”的构造函数,析构函数不允许有返回值,更重要的是析构函数不允许带参数,并且一个类中只能有一个析构函数。
重载构成的条件:函数的参数类型、参数个数不同,才能构成函数的重载
`分析以下两种情况,是否构成函数的重载。
第一种情况:(1)void output();
(2)int output();
第二种情况:(1)void output(inta,int b=5);
(2)void output(int a);
1、this指针是一个隐含的指针,它是指向对象本身,代表了对象的地址
2、一个类所有的对象调用的成员函数都是同一代码段。那么成员函数又是怎么识别属于同一对象的数据成员呢?原来,在对象调用pt.output(10,10)时,成员函数除了接受2个实参外,还接受到了一个对象s的地址。这个地址被一个隐含的形参this指针所获取,它等同于执行this=&pt。所有对数据成员的访问都隐含地被加上前缀this->。例如:x=0; 等价于 this->x=0
指针数组:
http://baike.baidu.com/view/2072881.htm
获得数组:gets(对象.~)
获得字符串;对象。~=getchar();
其他scanf(“”)
结构体变量指针作函参
#include<stdio.h>
struct person
{
charname[20];
charsex;
intage;
floatheight;
};
void output(struct person*p)
{
printf("%-5s%3c%7d%8.1f",p->name,p->sex,p->age,p->height);
printf("\n");
}
void main()
{
structperson *ptr,per[3]={{"韩华",'F',20,180.4},
{"李凡",'F',19,168.2},
{"任丽",'M',20,174}};
ptr=per;
printf(“人员信息如下:\n”);
printf(“姓名 性别 年龄 身高:\n”);
for(;ptr<per+3;ptr++)output(ptr); /*结构体指针作函参*/
}
多个源文件处理: