預設情況下,c++編譯器至少給乙個類新增三個函式
預設建構函式(無參,函式體為空)
預設析構函式(無參,函式體為空)
預設拷貝建構函式,對屬性進行值拷貝
構造函式呼叫規則如下:
#include
using
namespace std;
//按照引數分類 有參構造(預設構造) 無參構造
//按照型別分類 普通構造 拷貝構造
class
person
person
(int age)
// //拷貝建構函式
// person(const person &p)
//析構函式
~person()
int m_age;};
void
test01()
intmain()
可以看到雖然沒有自己寫拷貝建構函式,但是p2的年齡仍然為18。其實是編譯器在預設的拷貝建構函式中做了簡單的值拷貝。 類和物件 物件特性 函式的分類和呼叫
兩種分類方式 按引數分類分為 有參構造和無參構造 按型別分類分為 普通構造和拷貝構造 三種呼叫方式 括號法顯示法 隱式轉換法 特點 當前行執行結束後,系統會立即 掉匿名物件 person類 class person person int a 拷貝建構函式 person const person p ...
類與物件特性 建構函式分類與呼叫
建構函式分類 按引數分為 有參和無參構造 按型別分為 普通構造和拷貝構造 呼叫方式 呼叫方式有三種 括號法,顯示法,隱式轉換法。include include using namespace std class person person int a 有參建構函式 person const pers...
類和物件 複製建構函式
形如x x x 或x x const x 二選一,後者能以常量物件作為引數 class complex complex c1 呼叫預設無參建構函式 complex c2 c1 呼叫預設的複製建構函式,將 c2 初始化成和c1一樣class complex complex const complex ...