如何从主函数为对象数组赋值
How to assign value to an array of objects from main function
class Vector{
public :
int *v;
Vector(int sz){
v = new int[sz];
}
int & at(int idx){
return v[i];
}
};
int main(){
Vector V(5);
for(int i=0;i<5;++i){
V.at(i) = i+1;
}
return 0;
}
在上面的程序中,在 for 循环内的主要函数下,我想使用 V[i] 而不是 V.at(i) 。
那么我应该在类 Vector 中进行哪些更改。有人帮忙。
我尝试使用构造函数调用,运算符重载等,但每次都失败了语法错误。
我不是一个在OOP设计方面很有经验的人。所以我期待帮助。
重载operator[]
函数,如下所示:
int& operator[] (int idx) {
return v[idx];
}
此外,您应该提供函数的const
版本,当Vector
符合 const 标准时可以使用该版本。
const int& operator[] (int idx) const {
return v[idx];
}
要与类一起使用的每个运算符都需要重载。
有关详细信息,您可以查看此问题。
当然,除非这是家庭作业,否则唯一理智的事情就是使用std::vector
您需要重载 [] 运算符。
int &operator[](int i)
{
if( i >= sz )
{
cout << "Index out of bounds" <<endl;
// return first element.
return v[0];
}
return v[i];
}
相关文章:
- 将对象数组的引用传递给函数
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 类对象数组的问题会导致崩溃
- Arduino C++在构造函数中用参数声明对象数组
- 使用对象数组对 SFML 进行动画处理
- C++ 对象数组堆栈溢出
- 如何将对象数组作为参数传递给模板
- 使用向量初始化参数化构造函数的对象数组
- 如何初始化对象数组?
- C++创建对象数组
- 在对象数组中搜索字符串并返回相应值的函数
- 有没有办法使用该类的构造函数初始化另一个类的私有部分内的对象数组?
- 如何在运行时在对象数组中动态追加新对象C++并打印它们
- 为什么我在声明对象数组时不能使用 -> 运算符?
- 编译时生成应在构造函数中创建的非 constexpr 对象数组
- 使用 C++ 创建对象数组
- 对象数组打印空白字符串
- 重载运算符 [] 用于从对象数组中给出特定索引
- 如何在 C++ 中使用提升属性树从 JSON 文件中读取对象数组