面向對象編程(一)

面向對象編程介紹

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;
};

#endif

6.嵌套類(內部類)

class A
{
public:
int x_;
class Inner:
{
public:
    int num;
    func;
};
};

7.局部類

class LoclClass
{
func()
{
...........
}
};

局部類只在定義它的局部域內可見。
局部類的成員函數必須被定義在類體中
局部類中不能有靜態成員

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章