#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;//1、分類
//按照參數進行分類 有參構造函數 無參構造函數(默認構造函數)
//按照類型進行分類 普通構造函數 拷貝構造函數
class Person
{
public://默認構造Person(){cout << "Person的默認構造函數調用" << endl;}//有參構造Person(int age){m_Age = age;cout << "Person的有參構造函數調用" << endl;}//拷貝構造Person( const Person &p ) // 類名( const 類名& aa ) // 本質上 Person * p = &per;{cout << "Person的拷貝構造函數調用" << endl;m_Age = p.m_Age;}//析構函數~Person(){cout << "Person析構函數調用" << endl;}int m_Age;};//2、調用
void test01()
{無參構造函數//Person p1;有參構造函數括號法//Person p2(10); //有參構造調用//Person p3(p2); //拷貝構造函數調用//cout << "p3的年齡: " << p3.m_Age << endl;顯示法//Person p4 = Person(10); //有參構造函數//Person p5 = Person(p4); //拷貝構造函數調用//注意點 //Person p(); //不可以用括號法 調用無參構造函數 原因Person p();編譯器認為是一個函數的聲明//Person(10); //匿名函數對象 特點:當前行執行完后,系統就回收//Person(p5); //不可以調用拷貝構造函數 來初始化匿名函數對象 Person(p5); 編譯器認為代碼為 Person p5; //隱式法Person p6 = 10; // Person p6 = 10; 等價于寫了 Person p6 = Person(10)Person p7 = p6;}int main(){test01();system("pause");return EXIT_SUCCESS;
}