C 基礎(五)拷貝建構函式

2021-08-14 10:50:44 字數 696 閱讀 1795

拷貝建構函式—深拷貝與淺拷貝

#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 中的建構函式用來產生物件,他告訴編譯器如何初始化乙個物件,以及其它一些前期工作 相對應的...