Я начинающий C++. У меня есть следующий код, результат не тот, который я ожидаю. Вопрос в том, почему, соотв. что не так. Конечно, большинство из вас видит это на первый взгляд.struct constructor + function parameter
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
Не забудьте принять ответы на ваши более старые вопросы. –
Обратите внимание, что это общепринятое соглашение для классов с комплексным числом, чтобы сначала назвать действительную часть, а затем мнимую часть. –