1.什么是面向?qū)ο?/strong> 面向?qū)⑾到y(tǒng)看成通過(guò)交互作用來(lái)萬(wàn)恒特定功能的對(duì)象的集合。每個(gè)對(duì)象用自己的方法來(lái)管理數(shù)據(jù)。也就是說(shuō)只有對(duì)象內(nèi)部的代碼能夠操作對(duì)象內(nèi)部的數(shù)據(jù) 2.面向?qū)ο蟮膬?yōu)點(diǎn) 通過(guò),繼承、封裝、多態(tài)降低程序的耦合度,并結(jié)合設(shè)計(jì)模式讓程序更容易修改和擴(kuò)展,并且易于復(fù)用。 3.面向?qū)ο蟮奶攸c(diǎn)
① 封裝——維護(hù)性 ② 繼承——復(fù)用性 ③ 多態(tài)——擴(kuò)展性 ④ 抽象
1.類的聲明
class Test{public: 公有成員(外部接口):對(duì)外可以訪問(wèn)PRivate: 私有成員:不能在類外訪問(wèn)protect: 保護(hù)成員:不能在類外訪問(wèn)};2.成員函數(shù) 類內(nèi)實(shí)現(xiàn)的方法默認(rèn)為inline函數(shù) Test.h
#ifndef _TEST_H_#define _TEST_H_class Test{pubilc:int x_;void initXYZ(int x, int y, int z);void displayXYZ();protected: int y_;private: int z_;};Test.cpp
#include “Test.h”#include <iostream>void Teat::initXYZ(int x, int y, int z){x_=x;y_=y;z_=z;}void Test:display(){ cout x_<<”/ny_”<<”/nz_”<<endl;}Main.cpp
#include <iostream>#include “Test.h”int main(){Test t;t.x_ = 5;t.initXYZ(1,2,3);t.displayXYZ(); return 0;}3.class VS struct class數(shù)據(jù)成員默認(rèn)私有 struct數(shù)據(jù)成員默認(rèn)公有 class與struct一樣遵循字對(duì)齊,大小只與成員有關(guān),方法是共享在同一段空間中 4.對(duì)象的存儲(chǔ)模型 this指針自動(dòng)傳參
Test *t1 = new Test();t1->initXYZ(1,2,3);調(diào)用時(shí)自動(dòng)傳輸this指針,保存對(duì)象的地址 5.類的作用域 在A.h中調(diào)用B的類: ① 可用#include “B.h” ② 可以前向聲明
A.h
#ifndef _A_H_#define _A_H_//#include "B.h"class B;class A{public: A(); ~A();private: B *b;};#endif6.嵌套類(內(nèi)部類)
class A{public:int x_;class Inner:{public: int num; func;};};7.局部類
class LoclClass{func(){...........}};局部類只在定義它的局部域內(nèi)可見。 局部類的成員函數(shù)必須被定義在類體中 局部類中不能有靜態(tài)成員
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注