【发布时间】:2015-03-24 14:43:21
【问题描述】:
我正在尝试构建自己的 std::vector 类,但我无法重载下标 ([]) 和 cout << 运算符。
到目前为止,我已经尝试将<< 运算符定义为类的公共成员,然后在类声明之外编写函数体。
现在我从 iostream 库中得到充满错误的终端页面,我什至不知道从哪里开始查看它们。
我是 C++ 初学者,不习惯 friend 关键字或 template 关键字。我做错了什么?
template<typename T>
class MyVector {
private:
T* Array;
public:
T& operator[](int b)
{
...
}
std::ostream& output(std::ostream& s) const;
};
std::ostream& operator<<(std::ostream& output, MyVector& A)
{
int i;
for(i = 0; i < A.GetDimension(); i++)
{
output << A[i] << " ";
}
output << "\n";
return output;
};
【问题讨论】:
-
你不能混用
realloc和new -
因为我的评论是正确的。如果将指针从
new传递到realloc,则结果未定义。它可能适用于您的编译器,但会在另一个编译器上崩溃。
标签: c++ operator-overloading operator-keyword cout