Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 自定义向量类,返回向量,类似于c++;_C++_Arrays_Pointers_Templates_Vector - Fatal编程技术网

C++ 自定义向量类,返回向量,类似于c++;

C++ 自定义向量类,返回向量,类似于c++;,c++,arrays,pointers,templates,vector,C++,Arrays,Pointers,Templates,Vector,我试图创建一个自定义向量类并重载所有运算符。考虑下面的代码: template <class T> class vector{ private: T * arrayOfObj; // other class members public: Vector(){ arrayOfObj = new T[100]; } vector(int size); // other functio

我试图创建一个自定义向量类并重载所有运算符。考虑下面的代码:

  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.
    }
模板
类向量{
私人:
T*arrayOfObj;
//其他班级成员
公众:
向量(){
arrayOfObj=新T[100];
}
向量(整数大小);
//向量类的其他函数,重载[],=,等等。
}
在另一个类中,我需要返回向量,但带有一个指针,如返回数组时:

   #include "B.h"
   class c {

     vector<B> vect;

     public:
     B * getArray(){
       return vect;
     }
#包括“B.h”
c类{
向量向量;
公众:
B*getArray(){
返回向量;
}
首先,是否可以像数组一样重新运行向量? 另外,如果我想访问封装在vector类中的动态数组,而不使用公共函数返回数组,我的方法应该是什么

首先,是否可以像数组一样重新运行向量

当然,这就是它所做的。它就像以任何方法或运算符重载执行
返回arrayOfObj;
一样简单

另外,如果我想访问封装在vector类中的动态数组,而不使用公共函数返回数组,我的方法应该是什么

不可能。要么允许通过公共函数访问内部存储,要么不允许,由您选择。在
c::getArray()中
您还可以将
vect
的所有元素复制到一个新数组中-这样就没有人会从外部更改
vect
,您不必提供对
vector
类内部存储的访问

还有一种
friend
机制,允许一个函数或类访问另一个类的私有成员,但通常比公共访问更糟糕

我正在尝试创建一个自定义向量类--。从一个工作示例中学习。