考完再來筆記,簡直無情,考試各種錯,各種沒有愛。。
static
#include<iostream.h>
int fun(int n)
{
static int m=2;
m=m+n;
return m;
}
int main ()
{
int n1=2;
int n2=3;
fun(n1);
cout<<fun(n2);
}
static定義為靜態全局變量
運算fun(n1) m值為4
運算fun(n2) m值為7
結果 輸出 7
構造函數
是一種特殊的方法 主要用來在創建對象時初始化對象 即為對象成員變量賦初始值,總與new運算符一起使用在創建對象的語句中 特別的一個類可以有多個構造函數 可根據其參數個數的不同或參數類型的不同來區分它們 即構造函數的重載
例
#include<iostream.h>
class A
{
private:
int i;
int j;
public:
A(int m,int n) //構造函數
{
i=m; j=n;
cout<<m<<n;
}
}; //←注意這個冒號
int main()
{
A B(2,4);
}
析構函數
與構造函數相反,當對象脫離其作用域時(例如對象所在的函數已調用完畢),系統自動執行析構函數。析構函數往往用來做“清理善后” 的工作(例如在建立對象時用new開辟了一片內存空間,應在退出前在析構函數中用delete釋放)。
#include<iostream.h>
class A
{
private:
int i;
int j;
public:
A(int m,int n)
{
i=m; j=n;
cout<<i<<j<<endl;
}
~A()
{
cout<<i<<j<<endl;
}
};
int main()
{
A B(2,4);
A C(6,8);
}
運行結果
24
68
68
24
派生類
利用繼承機制,新的類可以從已有的類中派生。那些用于派生的類稱為這些特別派生出的類的“基類”。
#include<iostream.h>
class A
{
private:
int i;
int j;
public:
A(int m,int n)
{
i=m; j=n;
cout<<i<<j<<endl;
}
};
class B:public A
{
private:
int k;
int l;
public:
B(int m, int n, int g, int h):A(m,n)
{
k=g;
l=h;
cout<<m<<n<<g<<h<<endl;
}
};
int main()
{
B C(2,4,6,8);
}
運行結果
24
2468
|