c++primer plus 第11章 编程题第7题
生活随笔
收集整理的這篇文章主要介紹了
c++primer plus 第11章 编程题第7题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
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_//總結(jié),如果在第二個(gè)構(gòu)造函數(shù)里寫(xiě)了double n =0, double b = 0;就不用寫(xiě)complex(),兩個(gè)是等價(jià)的,會(huì)存在歧義
//所以盡量不要在構(gòu)造函數(shù)參數(shù)里寫(xiě) = 0;因?yàn)闀?huì)產(chǎn)生歧義,老實(shí)用complex()和第二個(gè)構(gòu)造函數(shù)就好
//凡是不用改變的都設(shè)成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);*///直接調(diào)用構(gòu)造函數(shù)//要習(xí)慣于用這個(gè)簡(jiǎn)化語(yǔ)句//一般就用最后一條語(yǔ)句,等價(jià)于前面三條,調(diào)用構(gòu)造函數(shù)會(huì)產(chǎn)生一個(gè)臨時(shí)對(duì)象,賦值給左邊 }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)//別打::因?yàn)橛言辉陬惱锩?#xff0c;雖然是在類里面聲明 {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);*///直接調(diào)用構(gòu)造函數(shù)//要習(xí)慣于用這個(gè)簡(jiǎn)化語(yǔ)句//一般就用最后一條語(yǔ)句,等價(jià)于前面三條,調(diào)用構(gòu)造函數(shù)會(huì)產(chǎn)生一個(gè)臨時(shí)對(duì)象,賦值給左邊 }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)//別打::因?yàn)橛言辉陬惱锩?#xff0c;雖然是在類里面聲明 {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 閱讀(...) 評(píng)論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/syne-cllf/p/9240615.html
總結(jié)
以上是生活随笔為你收集整理的c++primer plus 第11章 编程题第7题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 即时通讯 IM 开发指南 1:如何进行技
- 下一篇: 手机连接WiFi老掉线-手机连接WiFi