1,c++為類提供的特殊成員函式
預設建構函式
編譯器提供乙個不接受任何引數,也不執行任何操作的建構函式,在建立類物件的時候會被呼叫,如果現式的定義了建構函式,那麼 預設建構函式將不會被呼叫。
預設析構函式
複製建構函式
複製建構函式用於將乙個物件複製到新建立的物件中,它使用者在初始化過程中而不是在賦值過程中,類的複製建構函式的原型如下class_name(const class_name &);
何時呼叫複製建構函式:新建乙個類物件並將其初始化為同類現有的類物件的時候,複製建構函式將被呼叫。
假設motto是乙個stringbad類的物件,則以下幾種情況都將呼叫複製建構函式
stringbad ditto(motto);
stringbad ditto=motto;
stringbad ditto =stringbad(motto);
每當程式生成物件的副本時候,都將呼叫複製建構函式,比如按值傳遞, 複製建構函式的作用是逐個複製非靜態成員的值 在類的設計中應該定義乙個顯式的複製建構函式,使每個物件都有自己的記憶體空間
賦值運算子
在類的設計中應該定義乙個顯式的賦值過載運算子,使每個物件都有自己的記憶體空間,
位址運算子
2,類的靜態成員函式
1,不能通過物件去呼叫靜態成員函式,因為靜態成員函式是屬於整個類的,
2,因為靜態成員函式不與特定的物件關聯,所以只能呼叫靜態成員
#include #include #include class string;
string::string(const char*str)
else }
string::string(const string&another)
string & string::operator=(const string &rhs)
delete m_data;
m_data = new char[strlen(rhs.m_data)+1];
strcpy(m_data,rhs.m_data);
return*this;
}string::~string()
C C 學習筆記 四
到目前為止,我們定義的所有函式都是在它們第一次被呼叫 通常是在main中 之前,而把main 函式放在最後。如果重複以上幾個例子,但把main 函式放在其它被它呼叫的函式之前,你就會遇到編譯錯誤。原因是在呼叫乙個函式之前,函式必須已經被定義了,就像我們前面例子中所做的。但實際上還有一種方法來避免在m...
C C學習筆記
1.儲存型別 標準c語言為變數 常量 函式定義了4種儲存型別 extern,auto,static,register,它們分別用乙個關鍵字 儲存型別說明符 來說明。這4種儲存型別可分為兩種生存期限 永久的 即整個程式執行期間都存在 extern和static 和臨時的 即暫時儲存在堆疊和暫存器中 a...
C,C 學習筆記
1.求a的n次方 標頭檔案pow a,n a,n都為double 2.關於指標的一些小測試 includeusing namespace std int main int a 8 int m 3 cout 3.sort位於 algorithm 中,sort p,p n 預設公升序排列。4.inclu...