【发布时间】:2012-03-26 14:21:43
【问题描述】:
我的作业要求我使用二元运算符来处理类中的复数。
由于每个类都是在从文件读取的循环中创建的(使用 new),为了能够引用它们,我将它们存储在一个向量中(使用 pushback)。
当前函数定义:
Complex Complex::operator+ (vector<Complex> &v)
{
result= new Complex;
result.real=real+v[y].real;
result.imaginary=imaginary+v[y].imaginary;
return result;
}
类中的当前定义:
Complex operator+ (vector<Complex> &v);
在主函数中被调用: 结果=v[x]+v[y];
我在网上找到的所有内容都依赖于具有已知名称的类,因此您可以发送指针。我希望能够选择在运行时使用哪个类,所以我不能给出一个集合向量成员。
我意识到这完全是错误的,但我不知道最好的方法是什么。
任何帮助都会很棒! :) 呵呵
【问题讨论】:
-
在这里使用
new绝对没有意义。 -
您是要添加一个 Complex 和另一个 Complex,还是添加一个带有 Complex 向量的 Complex?您的 main 函数调用建议前者,您的 operator 参数建议后者。
标签: c++ class vector operator-overloading