拷貝建構函式—深拷貝與淺拷貝
#include
#include
using
namespace
std;
class teacher
teacher(teacher &t)
~teacher()
}void print()
static
char *m_country;
private :
int m_age;
//static char *m_country;//這樣54行就不可訪問
char *m_name;
};char *teacher::m_country = (char *)malloc(sizeof(char)*20) ;//所有成員共享同一塊位址m_country
void func(teacher &t)
int main()
{ teacher t(10, "小明", "中國");
t.print();
func(t);
teacher t1 = t;//不再呼叫預設建構函式,直接呼叫拷貝建構函式
t1.print();
return
0;
C 基礎10 拷貝建構函式
1.1 拷貝建構函式的定義 如果乙個類的建構函式的第乙個引數為所屬類型別的引用。如果還有其他額外引數,且這些額外的引數都有預設值,則該建構函式就叫拷貝建構函式。函式的預設引數必須放在函式宣告中,除非該函式沒有宣告。1.2 拷貝建構函式的作用 拷貝建構函式會在一定的時機被系統自動呼叫。ifndef d...
C 建構函式 拷貝建構函式
建構函式 class base private int m var 建構函式無返回值型別,函式名和型別相同。拷貝建構函式傳遞引數為引用。1 class base2 7 拷貝建構函式 8 base base ref m var ref m var 9 11 private 12 intm var 13...
C 基礎(一)建構函式 析構函式 拷貝建構函式
在c 中你寫乙個空類,什麼都不做,編譯器會給你生成乙個建構函式,乙個拷貝建構函式,乙個拷貝賦值函式 運算子過載 乙個析構函式,而且是當他們被呼叫的時候才生成。這說明這四個函式的重要 這裡主要說他們其中的三個 c 中的建構函式用來產生物件,他告訴編譯器如何初始化乙個物件,以及其它一些前期工作 相對應的...