類:用來”定義“或者說是“規(guī)范”一個(gè)對(duì)象的模板 孕荠,大致可以分為兩部分“屬性”和“操作”沪哺。
例如:我想用粘土捏蘋果,提前定義了兩個(gè)“標(biāo)準(zhǔn)屬性“顏色”和“大小”,顏色:紅綠藍(lán)黃阅羹,大猩滋邸:有大,中捏鱼,小三個(gè)执庐。”操作“我選擇先做好兩個(gè)模具用他們直接做蘋果, 一個(gè)是圓的 一個(gè)葉狀的导梆,有了這個(gè)定義的模板轨淌,我可以做出 綠葉紅色的蘋果迂烁、黃葉藍(lán)色的蘋果......
類格式:
class classname{
//class:C++類關(guān)鍵字 classname:自定義類名
public:
private:
protected:
};
public: 存放公共成員可以是變量可以是函數(shù),可以外部使用
private: 存放私成員可以是變量可以是函數(shù)递鹉,外部不可訪問盟步,只有類內(nèi)和友元有權(quán)限訪問
provate:目前不熟
用類定義一個(gè)對(duì)象
classname object /*上面定義過類名classname 這里用它定義了一個(gè)對(duì)象object
對(duì)象訪問數(shù)據(jù)成員
對(duì)象名.成員
object.數(shù)據(jù)成員
分割線——————————————————————————————————
六個(gè)函數(shù):內(nèi)聯(lián)、構(gòu)造躏结、析構(gòu)却盘、拷貝構(gòu)造、友元媳拴、自定義函數(shù)
內(nèi)聯(lián)函數(shù):用于簡(jiǎn)單函數(shù)黄橘,省去代碼執(zhí)行之間的跳轉(zhuǎn)過程,直接把代碼拷貝到當(dāng)前位置執(zhí)行
inline int getc();
inline int getc{
/////
return 0;
}
構(gòu)造函數(shù):在定義類時(shí)用于初始化一些數(shù)據(jù)
classname();
classname::classname(//這里初始化)
{
//無返回值
}
析構(gòu)函數(shù):用于創(chuàng)建完對(duì)象執(zhí)行完操作后銷毀這些對(duì)象
~classname();
classname::~classname(void)
{
cout<<"delete_object\n";
//無返回值
}
拷貝構(gòu)造函數(shù):通過使用另一個(gè)同類型的對(duì)象來初始化新創(chuàng)建的對(duì)象
classname(const classname &object);
classname::classname(const classname &object)
{
//這里可以選擇要拷貝對(duì)象object的屬性
//無返回值
}
友元函數(shù):定義在類外部(聲明同樣在類內(nèi))但并非成員函數(shù)屈溉,可訪問private私有成員
class classname{
//class:C++類關(guān)鍵字 classname:自定義類名
public: friend int getc();
private: int x;
protected:
};
friend int getc(classname object)
{
cout<< object.x;
return 0;
}
友元其他對(duì)象需在 classname中放置聲明
class classname{
//class:C++類關(guān)鍵字 classname:自定義類名
public: friend class classname2;
private:
protected:
};
自定義函數(shù):
int getc();
int classname :: getc()
{
return 0;
}