設計立方體類
求出立方體面積和體積
分別用全域性函式和成員函式判斷兩個立方體是否相等
class
cube
intgetl()
void
setw
(int ml)
intgetw()
void
seth
(int ml)
intgeth()
intcalcultes()
intcalculatev()
//成員函式 只需要乙個輸入 因為呼叫時輸入了乙個資料
bool
issame1
(cube &c)
}cube c1;
c1.setl(10
);c1.setw(10
);c1.seth(10
);s = c1.
calculates()
;v = c1.
calculatev()
;cube c2;
c2.setl(10
);c2.setw(10
);c2.seth(10
);//全域性函式
bool
issame
(cube &c1,cube &c2)
return
false;}
ret =
issame
(c1,c2)
;ret = c1.
issame1
(c2)
;
點和圓的關係
設計乙個圓類,設計乙個點類,計算點和圓的關係
class
point
class
circle
}void
iscircle
(circle &c,point &p)
}point p;
circle c;
iscircle
(c,p)
;
類的封裝
#include
using
namespace std;
//只加入宣告
//函式的宣告以及變數的宣告
#include
"point.h"
//加入函式的實現,需要加入作用域
void point::
sety
(int y)
//使用時只需要加入.h標頭檔案
物件的初始化和清理
每個物件都有初始設定以及物件銷毀前的清理資料的設定
建構函式和析構函式
物件的初始化和清理是兩個非常重要的安全問題
c++利用建構函式和折構函式解決上述問題,這兩個函式將會被編譯器自動呼叫,完成物件初始化和清理工作,物件的初始化和清理工作是編譯器強制我們做的事情,因此我們如果不提供構造和析構,編譯器會提供
編譯器提供的建構函式和析構函式是空實現
建構函式:主要作用於建立最想時為獨享的成員屬性賦值,建構函式由編譯器自動呼叫,無需手動呼叫
析構函式:主要作用於物件銷毀前系統自動嗲用,執行一些清理工作
建構函式語法:類名(){}
1.建構函式,沒有返回值也不寫void
2.函式名稱與類名相同
3.建構函式可以有引數,因此可以發生過載
4.程式在呼叫物件時會自動呼叫構造,無須手動呼叫,而且只會呼叫一次
析構函式語法:~類名(){}
1.析構函式,沒有返回值也不寫void
2.函式名稱與類名相同,在名稱前加上符號~
3.析構函式不可以有引數,因此不可以發生過載
4.程式在物件銷毀前會自動呼叫析構,無須手動呼叫而且只會呼叫一次
class
person
//析構函式
~person()
}person p;
//例項化時會自動呼叫建構函式,只呼叫一次
void
test()
test()
;//執行時會自動呼叫構造和析構,因為區域性變數執行完後自動釋放,刪除前呼叫了析構函式
建構函式的分類和呼叫
兩種分類方式
按引數分為:有參構造和無參構造
按型別分為:普通構造和拷貝構造
三種呼叫方式:
括號法顯示法
隱式轉換法
class
person
//有參構造
person
(int a)
//拷貝建構函式
person
(const person &p)
}void
test()
C 學習筆記(7)
子類可以自動共享父類的資料結構和方法的機制,單繼承 子類只繼承以父類的資料結構和方法。多繼承 子類可以繼承多個父類的資料結構和方法 需小心二義性 不同類物件呼叫相同的方法可以產生不同的結果 class class name permission lable 許可權識別符號,可以是public pri...
C 學習筆記7
目錄 1 聯編的概念 2 靜態聯編 3 動態聯編 4 虛函式 5 虛析構函式 6 純虛函式和抽象類 1 聯編的概念 聯編是指乙個電腦程式自身彼此關聯 使乙個源程式經過編譯 連線,成為乙個可執行程式 的過程,在這個聯編過程中,需要確定程式中的操作呼叫 函式呼叫 與執行該操作 函式 的 段之間的對映關係...
c 學習筆記7
七 c 語言整合開發環境和程式除錯 程式開發的一般過程 c 的開發工具 editor compiler linker 編輯器 編譯器和聯結器 ide integrated developing environment,整合開發環境 microsoft visual c 2010 express mi...