use
class ComplexNam
{
private:
double x;
double y;
public:
ComplexNam(double re = 0, double im = 0) : x(re), y(im) {}; // {}
ComplexNam(const ComplexNam& cmplx);
ComplexNam();
double fabs() const { return sqrt(x * x + y * y); };
double arg() const { return atan2(y, x); };
ComplexNam conj() const { return ComplexNam(x, -y); };
ComplexNam& operator =(const ComplexNam& cmplx) {
x = cmplx.x; y = cmplx.y; return *this; };
const ComplexNam& operator+() const {
return *this; }; // *
ComplexNam operator -() const {
return ComplexNam(-this->x, -this->y); }; // ???
ComplexNam operator+(const ComplexNam& cmplx) const {
return ComplexNam(x + cmplx.x, y + cmplx.y); };
ComplexNam operator-(const ComplexNam& cmplx) const {
return ComplexNam(x - cmplx.x, y - cmplx.y);};
ComplexNam operator*(const ComplexNam& cmplx) const {
return ComplexNam(x * cmplx.x - y * cmplx.y, x * cmplx.y + y * cmplx.x);};
ComplexNam operator/(const ComplexNam& cmplx) const {
double dn = cmplx.x * cmplx.x + cmplx.y * cmplx.y;
return ComplexNam((x * cmplx.x + y * cmplx.y) / dn, \
(-x * cmplx.y + y * cmplx.x) / dn);};
bool operator==(const ComplexNam& cmplx) const {
return ((x == cmplx.x) && (y == cmplx.y));};
bool operator!=(const ComplexNam& cmplx) const {
return !(*this == cmplx);};
friend ostream& operator <<(ostream& str, const ComplexNam& cmplx); // friend
};
ostream& operator<<(ostream& str, const ComplexNam& cmplx) { // ???
if (cmplx.y >= 0) // ???
str << cmplx.x << "+" << cmplx.y << "I"; // ???
else
str << cmplx.x << "-" << -cmplx.y << "I"; // ???
return str; }
int main(int argc, char** argv) {
cout << "Hello!" << endl; // ???
ComplexNam a(-1.0, 1.0);
ComplexNam b(2.0, -3.5);
ComplexNam c(b);
cout << "|a| = " << a.fabs() << ", arg(a) =" << a.arg() << endl;
cout << "|a|^2 = " << a * a.conj() << endl;
cout << "c / b" << c / b << endl; // ???
cout << "a + b*c = " << a + b * c << endl;
cout << "-a + 4*b = " << -a + ComplexNam(4.0) * b << endl; // ???
cout << "Good bye!" << endl; // " "
cin.get(); // ???
return 0;
}
ошибка: /usr/bin/ld: /tmp/ccmKuwUL.o: in function `main':
main.cpp:(.text+0x1a6): undefined reference to `ComplexNam::ComplexNam(ComplexNam const&)'
collect2: error: ld returned 1 exit status
помогите
у тебя 2 конструктора только объявлены, без определений
ты про ComplexNam(const ComplexNam& cmplx); ComplexNam(); ?
Обсуждают сегодня