1.什么是面向對象 面向將系統看成通過交互作用來萬恒特定功能的對象的集合。每個對象用自己的方法來管理數據。也就是說只有對象內部的代碼能夠操作對象內部的數據 2.面向對象的優點 通過,繼承、封裝、多態降低程序的耦合度,并結合設計模式讓程序更容易修改和擴展,并且易于復用。 3.面向對象的特點
① 封裝——維護性 ② 繼承——復用性 ③ 多態——擴展性 ④ 抽象
1.類的聲明
class Test{public: 公有成員(外部接口):對外可以訪問PRivate: 私有成員:不能在類外訪問protect: 保護成員:不能在類外訪問};2.成員函數 類內實現的方法默認為inline函數 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數據成員默認私有 struct數據成員默認公有 class與struct一樣遵循字對齊,大小只與成員有關,方法是共享在同一段空間中 4.對象的存儲模型 this指針自動傳參
Test *t1 = new Test();t1->initXYZ(1,2,3);調用時自動傳輸this指針,保存對象的地址 5.類的作用域 在A.h中調用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.嵌套類(內部類)
class A{public:int x_;class Inner:{public: int num; func;};};7.局部類
class LoclClass{func(){...........}};局部類只在定義它的局部域內可見。 局部類的成員函數必須被定義在類體中 局部類中不能有靜態成員
新聞熱點
疑難解答