1. 程式人生 > >C++類指標靈活運用

C++類指標靈活運用

文章目錄


C++類指標時很好使用的,但是類指標在別的地方如果使用只能在一個類裡邊進行使用。正常使用為在別的標頭檔案中進行宣告,我們以使用Camera類為例說明。

直接使用指標

標頭檔案

在需要使用camera類指標的類標頭檔案

#inclede "camera.h"    //包含類的標頭檔案
private:
    Camera *camera;
//在標頭檔案進行宣告

原始檔

在需要使用camera類指標的類原始檔

camera = new Camera;   //使用new新建一個類指標

這樣我們使用類指標就可以直接對類變數的變數進行操作。比如在Camera類中有height變數,我們就可以直接進行賦值操作。

camera->height = 5;

使用統一宣告

使用統一宣告的主要思路是將Camera類指標都在Camera類裡邊產生一次,當別的類希望使用的時候直接呼叫Camera函式會返回唯一的指標變數。下邊是我們在Camera類中所要修改的地方。

camera.h

class Camera
{
private: static Camera *camera; public: static Camera* GetInstance(); }

camera.cpp

Camera* Camera::GetInstance()
{
    if(camera == NULL)
    {
        camera = new Camera;
    }

    return camera;
}

使用camera指標

在別的類裡邊使用camera指標時,首先在標頭檔案中宣告

#include "camera.h"
public:
    Camera *
camera;

原始檔中

camera = Camera::GetInstance();

這樣就是可以使用Camera類指標的,而且可以在多個不同類中進行使用,不用擔心new導致指標錯亂。