c++面向对象程序设计 课后题 答案 谭浩强 第四章
Posted suibian1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++面向对象程序设计 课后题 答案 谭浩强 第四章相关的知识,希望对你有一定的参考价值。
c++面向对象程序设计课后题答案 谭浩强 第四章
1:
#include <iostream>
using namespace std;
class Complex
public:
Complex()real=0;imag=0;
Complex(double r,double i)real=r;imag=i;
double get_real();
double get_imag();
void display();
private:
double real;
double imag;
;
double Complex::get_real()
return real;
double Complex::get_imag()
return imag;
void Complex::display()
cout<<"("<<real<<","<<imag<<"i)"<<endl;
Complex operator + (Complex &c1,Complex &c2)
return Complex(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag());
int main()
Complex c1(3,4),c2(5,-10),c3;
c3=c1+c2;
cout<<"c3=";
c3.display();
return 0;
c++面向对象程序设计课后题答案 谭浩强
2:
#include <iostream>
using namespace std;
class Complex
public:
Complex()real=0;imag=0;
Complex(double r,double i)real=r;imag=i;
Complex operator+(Complex &c2);
Complex operator-(Complex &c2);
Complex operator*(Complex &c2);
Complex operator/(Complex &c2);
void display();
private:
double real;
double imag;
;
Complex Complex::operator+(Complex &c2)
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
Complex Complex::operator-(Complex &c2)
Complex c;
c.real=real-c2.real;
c.imag=imag-c2.imag;
return c;
Complex Complex::operator*(Complex &c2)
Complex c;
c.real=real*c2.real-imag*c2.imag;
c.imag=imag*c2.real+real*c2.imag;
return c;
Complex Complex::operator/(Complex &c2)
Complex c;
c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
return c;
void Complex::display()
cout<<"("<<real<<","<<imag<<"i)"<<endl;
int main()
Complex c1(3,4),c2(5,-10),c3;
c3=c1+c2;
cout<<"c1+c2=";
c3.display();
c3=c1-c2;
cout<<"c1-c2=";
c3.display();
c3=c1*c2;
cout<<"c1*c2=";
c3.display();
c3=c1/c2;
cout<<"c1/c2=";
c3.display();
return 0;
c++面向对象程序设计课后题答案 谭浩强
3:
#include <iostream> //用VC++时改为∶ #include <iostream.h>
using namespace std; //用VC++时为取消此行
class Complex
public:
Complex()real=0;imag=0;
Complex(double r,double i)real=r;imag=i;
Complex operator+(Complex &c2);
Complex operator+(int &i);
friend Complex operator+(int&,Complex &);
void display();
private:
double real;
double imag;
;
Complex Complex::operator+(Complex &c)
return Complex(real+c.real,imag+c.imag);
Complex Complex::operator+(int &i)
return Complex(real+i,imag);
void Complex::display()
cout<<"("<<real<<","<<imag<<"i)"<<endl;
Complex operator+(int &i,Complex &c)
return Complex(i+c.real,c.imag);
int main()
Complex c1(3,4),c2(5,-10),c3;
int i=5;
c3=c1+c2;
cout<<"c1+c2=";
c3.display();
c3=i+c1;
cout<<"i+c1=";
c3.display();
c3=c1+i;
cout<<"c1+i=";
c3.display();
return 0;
谭浩强
4:
#include <iostream>
using namespace std;
class Matrix //定义Matrix类
public:
Matrix(); //默认构造函数
friend Matrix operator+(Matrix &,Matrix &); //重载运算符“+”
void input(); //输入数据函数
void display(); //输出数据函数
private:
int mat[2][3];
;
Matrix::Matrix() //定义构造函数
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
mat[i][j]=0;
Matrix operator+(Matrix &a,Matrix &b) //定义重载运算符“+”函数
Matrix c;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
c.mat[i][j]=a.mat[i][j]+b.mat[i][j];
return c;
void Matrix::input() //定义输入数据函数
cout<<"input value of matrix:"<<endl;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
cin>>mat[i][j];
void Matrix::display() //定义输出数据函数
for (int i=0;i<2;i++)
for(int j=0;j<3;j++)
cout<<mat[i][j]<<" ";
cout<<endl;
int main()
Matrix a,b,c;
a.input();
b.input();
cout<<endl<<"Matrix a:"<<endl;
a.display();
cout<<endl<<"Matrix b:"<<endl;
b.display();
c=a+b; //用重载运算符“+”实现两个矩阵相加
cout<<endl<<"Matrix c = Matrix a + Matrix b :"<<endl;
c.display();
return 0;
c++面向对象程序设计课后题答案
5:
#include <iostream.h>
//using namespace std;
class Matrix
public:
Matrix();
friend Matrix operator+(Matrix &,Matrix &);
friend ostream& operator<<(ostream&,Matrix&);
friend istream& operator>>(istream&,Matrix&);
private:
int mat[2][3];
;
Matrix::Matrix()
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
mat[i][j]=0;
Matrix operator+(Matrix &a,Matrix &b)
Matrix c;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
c.mat[i][j]=a.mat[i][j]+b.mat[i][j];
return c;
istream& operator>>(istream &in,Matrix &m)
cout<<"input value of matrix:"<<endl;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
in>>m.mat[i][j];
return in;
ostream& operator<<(ostream &out,Matrix &m)
for (int i=0;i<2;i++)
for(int j=0;j<3;j++)
out<<m.mat[i][j]<<" ";
out<<endl;
return out;
int main()
Matrix a,b,c;
cin>>a;
cin>>b;
cout<<endl<<"Matrix a:"<<endl<<a<<endl;
cout<<endl<<"Matrix b:"<<endl<<b<<endl;
c=a+b;
cout<<endl<<"Matrix c = Matrix a + Matrix b :"<<endl<<c<<endl;
return 0;
6:
#include <iostream>
using namespace std;
class Complex
public:
Complex()real=0;imag=0;
Complex(double r)real=r;imag=0;
Complex(double r,double i)real=r;imag=i;
operator double()return real;
void display();
private:
double real;
double imag;
;
void Complex::display()
cout<<"("<<real<<", "<<imag<<")"<<endl;
int main()
Complex c1(3,4),c2;
double d1;
d1=2.5+c1;
cout<<"d1="<<d1<<endl;
c2=Complex(d1);
cout<<"c2=";
c2.display();
return 0;
7:
#include <iostream>
using namespace std;
class Student
public:
Student(int,char[],char,float);
int get_num()return num;
char * get_name()return name;
char get_sex()return sex;
void display()
cout<<"num:"<<num<<"\nname:"<<name<<"\nsex:"<<sex<<"\nscore:"<<score<<"\n\n";
private:
int num;
char name[20];
char sex;
float score;
;
Student::Student(int n,char nam[],char s,float so)
num=n;
strcpy(name,nam);
sex=s;
score=so;
class Teacher
public:
Teacher()
Teacher(Student&);
Teacher(int n,char nam[],char sex,float pay);
void display();
private:
int num;
char name[20];
char sex;
float pay;
;
Teacher::Teacher(int n,char nam[],char s,float p)
num=n;
strcpy(name,nam);
sex=s;
pay=p;
Teacher::Teacher(Student& stud)
num=stud.get_num();
strcpy(name,stud.get_name());
sex=stud.get_sex();
pay=1500;
void Teacher::display()
cout<<"num:"<<num<<"\nname:"<<name<<"\nsex:"<<sex<<"\npay:"<<pay<<"\n\n";
int main()
Teacher teacher1(10001,"Li",‘f‘,1234.5),teacher2;
Student student1(20010,"Wang",‘m‘,89.5);
cout<<"student1:"<<endl;
student1.display();
teacher2=Teacher(student1);
cout<<"teacher2:"<<endl;
teacher2.display();
return 0;
以上是关于c++面向对象程序设计 课后题 答案 谭浩强 第四章的主要内容,如果未能解决你的问题,请参考以下文章