阿牛哥C 筆記 3

2021-05-01 19:25:15 字數 3890 閱讀 5605

阿牛哥c++

第十四講 實驗三

-----物件的釋放方法,析構函式的使用

析構函式前加~

和類名相同

沒有引數

且是唯一的

不能過載

實現系統會自動的呼叫析構函式。

指標變數會自動的釋放記憶體空間,所以沒有析構的說法

#include

#include //strcpy head file

class cstudent

;//習慣在成員變數前面加上m_表示成員變數,以區分

//實現

cstudent::cstudent() //類很多,要用域操作符表明屬於哪乙個類

//建構函式就是對資料成員進行初始化

cstudent::cstudent(char *name,int age)

//實現兩個建構函式

void cstudent::initialize(char *name,int age)

//析構函式的實現

cstudent::~cstudent()

void cstudent::output()

;for(int i=0;i<3;i++)

*/      

//指標的使用和初始化

cstudent stu;

cstudent *p = &stu;

p->output();

(*p).output();

}程式會把析構的標記輸出

第十五講 實驗四

----掌握引用的使用方法

定義別名,一定要初始化,

使用,用別名呼叫其輸出函式,

#include

#include //strcpy head file

class cstudent

;//習慣在成員變數前面加上m_表示成員變數,以區分

//實現

cstudent::cstudent() //類很多,要用域操作符表明屬於哪乙個類

//建構函式就是對資料成員進行初始化

cstudent::cstudent(char *name,int age)

//實現兩個建構函式

void cstudent::initialize(char *name,int age)

//析構函式的實現

cstudent::~cstudent()

void cstudent::output()

;for(int i=0;i<3;i++)

*/      

//指標的使用和初始化

/* cstudent stu;

cstudent *p = &stu;

p->output();

(*p).output();

*///引用的使用

cstudent stu("tom",32);

cstudent &alias_stu = stu;

alias_stu.output();

}返回物件本身??

第十八講 實驗七

--動態記憶體的分配,動態分配物件陣列的方法。

new 分配記憶體

delete 釋放記憶體空間

#include

#include //strcpy head file

class cstudent

;//習慣在成員變數前面加上m_表示成員變數,以區分

//實現

cstudent::cstudent() //類很多,要用域操作符表明屬於哪乙個類

//建構函式就是對資料成員進行初始化

cstudent::cstudent(char *name,int age)

//實現兩個建構函式

//以上資料成員用_標示了出來,如果使用this指標的話可以用this-

>age=age來實現

void cstudent::initialize(char *name,int age)

//析構函式的實現

cstudent::~cstudent()

void cstudent::output()

;for(int i=0;i<3;i++)

*/      

//指標的使用和初始化

/* cstudent stu;

cstudent *p = &stu;

p->output();

(*p).output();

*///引用的使用

/* cstudent stu("tom",32);

cstudent &alias_stu = stu;

alias_stu.output();

*///動態分配記憶體,動態分配陣列

cstudent *p = new cstudent;

p->output();

delete p;

cstudent *q = new cstudent[2];

q[0].initialize("jim",22);

q[1].initialize("lily",16);

q[0].output();

q[1].output();

delete q;

}第十九講 實驗 八

掌握拷貝函式的使用方法

宣告拷貝建構函式

名字和類名相同

只有乙個引數

是乙個cstudent類的引用

因為能過拷貝建構函式在乙個已知的物件賦值給另乙個物件

#include

#include //strcpy head file

class cstudent

;//習慣在成員變數前面加上m_表示成員變數,以區分

//實現

cstudent::cstudent() //類很多,要用域操作符表明屬於哪乙個類

//建構函式就是對資料成員進行初始化

cstudent::cstudent(char *name,int age)

//實現兩個建構函式

//以上資料成員用_標示了出來,如果使用this指標的話可以用this-

>age=age來實現

void cstudent::initialize(char *name,int age)

//析構函式的實現

cstudent::~cstudent()

cstudent::cstudent(const cstudent &student)

void cstudent::output()

;for(int i=0;i<3;i++)

*/      

//指標的使用和初始化

/* cstudent stu;

cstudent *p = &stu;

p->output();

(*p).output();

*///引用的使用

/* cstudent stu("tom",32);

cstudent &alias_stu = stu;

alias_stu.output();

*///動態分配記憶體,動態分配陣列

/* cstudent *p = new cstudent;

p->output();

delete p;

cstudent *q = new cstudent[2];

q[0].initialize("jim",22);

q[1].initialize("lily",16);

q[0].output();

q[1].output();

delete q;

*///拷貝函式

cstudent stu1("jim",22);

cstudent stu2(stu1);

stu1.output();

stu2.output();}預習

友元函式

靜態成員變數

阿牛哥C 筆記 4 1

第二十講 友元函式 定義乙個函式不是本類的函式,但可以訪問本類的成員。那需要在類中定義這個為友元函式 宣告格式 friend void visit 實驗 二十講 友元函式的使用方法 想用乙個普通函式來操作定義物件的資料成員。在類當中宣告變通函式是這個類的友元函式 include include st...

阿牛哥C 筆記 9

第四十二講 虛基類 class a void a inputa int xx class b void b inputb int xx class c public a,public b void c output 輸出的x是哪個呢 編譯應該會出錯了 那麼要修改output函式 void c out...

阿牛哥C 筆記 10

第四十三講 虛函式 class a class b public a class c publid b 不同層次完全一樣的函式頭 c類中將會有三個output函式 void main 完全一樣的函式頭,無法根據引數來區分 執行時能根據不同的物件選擇不同的output 函式,這種性質叫 做執行時多型 ...