簡體   English   中英

自定義向量 class,像數組一樣返回向量 c++

[英]Custom Vector class, return vector like an array in c++

我正在嘗試創建一個自定義向量 class 並重載所有運算符。 考慮以下代碼:

  template <class T>
  class vector{

     private:
     T * arrayOfObj;
     // other class members

    public:

     Vector(){
      arrayOfObj = new T[100];
     }
     vector(int size); 
     // other functions for vector class, overloaded [], =, etc.
    }

在另一個 class 中,我需要返回向量但使用指針,就像我們返回數組時一樣:

   #include "B.h"
   class c {

     vector<B> vect;

     public:
     B * getArray(){
       return vect;
     }

首先,是否可以像數組一樣重新運行向量? 另外,如果我想訪問封裝在向量 class 內的動態數組而不使用公共 function 返回數組,我的方法應該如何?

首先,是否可以像數組一樣重新運行向量?

當然,這就是std::vector::data()所做的。 就像做return arrayOfObj; 在任何方法或運算符重載中。

另外,如果我想訪問封裝在向量 class 內的動態數組而不使用公共 function 返回數組,我的方法應該如何?

不可能。 要么您允許通過公共 function 訪問您的內部存儲,要么您不允許這樣做,您的選擇。 c::getArray()中,您還可以將vect的所有元素復制到一個新數組中 - 這樣沒有人會從外部更改vect並且您不必提供對vector class 內部存儲的訪問。

還有一種friend元機制允許一個 function 或 class 訪問另一個 class 的私有成員,但通常比公共訪問更糟糕

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM