C C 學習筆記(四)

2021-06-20 21:09:35 字數 1131 閱讀 1743

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...