C++经典练习1C++经典练习1.doc
文本预览下载声明
.声明 Point 类,有坐标_x,_y 两个成员变量;对 Point 类重载“++”(自增)、“--” (自减)运算符,实现对坐标值的改变。
#includeiostream
using namespace std;
class point
{
public:
point(int xx=0,int yy=0)
{x=xx;y=yy;}
void set(int xx,int yy);
point operator ++();point operator ++(int);
point operator --();point operator --(int);
void display();
private: int x,y;
};
void point::set(int xx,int yy) {x=xx;y=yy;}
void point::display() {cout(x,y)endl;}
point point::operator ++() {return point(++x,++y);}
point point::operator ++(int) {return point(x++,y++);}
point point::operator --() {return point(--x,--y);}
point point::operator --(int) {return point(x--,y--);}
int main()
{
point a;int m,n;cout输入横纵坐标:;cinmn;a.set(m,n);
couta=;a.display();cout(a++)=;(a++).display();
cout(++a)=;(++a).display();cout(a--)=;(a--).display();
cout(--a)=;(--a).display();return 0;}
分别使用成员函数和友元函数完成运算符加减法的重载,并进行测试。
#includeiostream.h
using namespace std;
class complex
{
public:
complex(double r=0.0,double i=0.0):real(r),imag(i){}
void set(double r, double i); void display();
friend complex operator +(complex c1,complex c2);
friend complex operator -(complex c1,complex c2);
private:
double real;double imag;
};
complex operator +(complex c1,complex c2)
{return complex(c1.real+c2.real,c1.imag+c2.imag);}
complex operator -(complex c1,complex c2)
{return complex(c1.real-c2.real,c1.imag-c2.imag);}
void complex::set(double r, double i)
{real = r;imag = i;}
void complex::display() {cout(real,imag)endl;}
int main()
{double a,b,c,d; complex c1,c2,c3; cout输入c1实部虚部:;
cinab; cout输入c2实部虚部:; cincd; c1.set(a,b);
c2.set(c,d); coutc1=;c1.display(); coutc2=;
c2.display(); c3=c1+c2;coutc3=c1+c2=; c3.display();
c3=c1-c2;coutc3=c1-c2;c3.display();return 0;}
.编一带派生类的程序,用虚函数多态性计算三角形、正方形和圆形的面积,并编写主程序测试。
#includeiostream
using namespace std;
class graph
{
public:
graph(double i=0.0,double j=0.0){x=i;y=j;}
virtual double area();
private:double x,y;
};
double graph::area(){return 0.0;}
class tria:public graph
{
public:tria(double i=0.
显示全部