阿牛哥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 函式,這種性質叫 做執行時多型 ...