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
机制,允许一个函数或类访问另一个类的私有成员,但通常比公共访问更糟糕我正在尝试创建一个自定义向量类--。从一个工作示例中学习。