我是C++初学者。我有下面的代码,重现不是我期望的。问题是为什么,分别。哪里不对。当然,你们大多数人乍一看就会看到它。struct constructor +函数参数
struct Complex {
float imag;
float real;
Complex(float i, float r) {
imag = i;
real = r;
}
Complex(float r) {
Complex(0, r);
}
std::string str() {
std::ostringstream s;
s << "imag: " << imag << " | real: " << real << std::endl;
return s.str();
}
};
class Complexes {
std::vector<Complex> * _complexes;
public:
Complexes(){
_complexes = new std::vector<Complex>;
}
void Add(Complex elem) {
_complexes->push_back(elem);
}
std::string str(int index) {
std::ostringstream oss;
Complex c = _complexes->at(index);
oss << c.str();
return oss.str();
}
};
int main(){
Complexes * cs = new Complexes();
//cs->Add(123.4f);
cs->Add(Complex(123.4f));
std::cout << cs->str(0); return 0; }
现在我有兴趣在C++基础不是在complexnumber理论;-) 这将是很好,如果“添加”功能的确也接受一个真正的(没有额外的超载),而不是只复杂对象是可能的吗?
提前很多感谢
哎呀
* huih *,我必须说,这个论坛非常快,非常棒。你们都非常乐于助人!再次感谢。 – OlimilOops 2010-04-24 16:52:43
然后,不要忘记接受你的旧问题的答案。 – 2010-04-24 17:01:24
请注意,复数类是公认的惯例,先命名实部,然后命名虚部。 – 2010-04-24 17:10:50