類的一個對象就是一個實例
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); /*結構體指針作函參*/
}
多個源文件處理: