c++primer plus 第11章 编程题第7题
生活随笔
收集整理的這篇文章主要介紹了
c++primer plus 第11章 编程题第7题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
c++primer plus 第11章 編程題第7題 #pragma once
#ifndef COMPLEX0_H_
#define COMPLEX0_H_
#include<iostream>class Complex
{
private:double real;double imgn;
public:Complex();Complex(double a, double b);~Complex();Complex operator+(const Complex & a) const;Complex operator-(const Complex & a) const;Complex operator~();Complex operator*(double c);Complex operator*(const Complex & a) const;//friendfriend Complex operator*(const double c, const Complex & a);friend std::ostream & operator<<(std::ostream & os, const Complex &a);//operator后面別打空格friend std::istream & operator>>(std::istream & os, Complex &a);//cin是在istream里
};#endif // !COMPLEX0_H_//總結,如果在第二個構造函數里寫了double n =0, double b = 0;就不用寫complex(),兩個是等價的,會存在歧義
//所以盡量不要在構造函數參數里寫 = 0;因為會產生歧義,老實用complex()和第二個構造函數就好
//凡是不用改變的都設成const
---------------------------------
#include"complex0.h"Complex::Complex() {real = imgn = 0; }Complex::Complex(double n1, double n2) {real = n1;imgn = n2; }Complex Complex::operator+(const Complex & a) const {Complex temp;temp.real = real + a.real;temp.imgn = imgn + a.imgn;return temp;/*return Complex(real + a.real, imgn + a.imgn);*///直接調用構造函數//要習慣于用這個簡化語句//一般就用最后一條語句,等價于前面三條,調用構造函數會產生一個臨時對象,賦值給左邊 }Complex Complex::operator-(const Complex & a) const {Complex temp;temp.real = real - a.real;temp.imgn = imgn - a.imgn;return temp; }Complex Complex::operator*(const Complex & a) const {Complex temp;temp.real = real * a.real + imgn * a.imgn;temp.imgn = real * a.imgn + imgn * a.real;return temp; }Complex Complex::operator~() {imgn = 0 - imgn;return *this; }Complex Complex::operator*(double c) {return Complex(c * real, c * imgn); } //friend Complex operator*(const double c, const Complex & a)//別打::因為友元不在類里面,雖然是在類里面聲明 {return Complex(c * a.real, c * a.imgn); }std::ostream & operator<< (std::ostream & os, const Complex &a) {os << "is " << "( " << a.real << ", " << a.imgn << "i )";return os; } std::istream & operator >> (std::istream & os, Complex & a)//cin在istream里 {std::cout << "real: ";os >> a.real;std::cout << "imaginary: ";os >> a.imgn;return os;} Complex::~Complex() {}
---------------------------------
#include"complex0.h"Complex::Complex() {real = imgn = 0; }Complex::Complex(double n1, double n2) {real = n1;imgn = n2; }Complex Complex::operator+(const Complex & a) const {Complex temp;temp.real = real + a.real;temp.imgn = imgn + a.imgn;return temp;/*return Complex(real + a.real, imgn + a.imgn);*///直接調用構造函數//要習慣于用這個簡化語句//一般就用最后一條語句,等價于前面三條,調用構造函數會產生一個臨時對象,賦值給左邊 }Complex Complex::operator-(const Complex & a) const {Complex temp;temp.real = real - a.real;temp.imgn = imgn - a.imgn;return temp; }Complex Complex::operator*(const Complex & a) const {Complex temp;temp.real = real * a.real + imgn * a.imgn;temp.imgn = real * a.imgn + imgn * a.real;return temp; }Complex Complex::operator~() {imgn = 0 - imgn;return *this; }Complex Complex::operator*(double c) {return Complex(c * real, c * imgn); } //friend Complex operator*(const double c, const Complex & a)//別打::因為友元不在類里面,雖然是在類里面聲明 {return Complex(c * a.real, c * a.imgn); }std::ostream & operator<< (std::ostream & os, const Complex &a) {os << "is " << "( " << a.real << ", " << a.imgn << "i )";return os; } std::istream & operator >> (std::istream & os, Complex & a)//cin在istream里 {std::cout << "real: ";os >> a.real;std::cout << "imaginary: ";os >> a.imgn;return os;} Complex::~Complex() {}
?
??
posted on 2018-06-28 20:50 syne 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/syne-cllf/p/9240615.html
總結
以上是生活随笔為你收集整理的c++primer plus 第11章 编程题第7题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 即时通讯 IM 开发指南 1:如何进行技
- 下一篇: java 电子商务云平台b2b b2c