ITPub博客

首页 > 应用开发 > > c++运算符+号重载

c++运算符+号重载

作者:founderwzh 时间:2019-08-14 15:48:36 0 删除 编辑

#include

using namespace std;

const float PI = 3.141593;

class Point

{

public:

Point(int xx = 0, int yy = 0) {

x = xx;

y = yy;

}

Point(Point &p);

int getX() {

return x;

}

int getY() {

return y;

}

~Point() {}

private:

int x, y;

};

class Circle :public Point {

public:

friend Circle operator+(const Circle& circle1,const Circle& circle2);

Circle(float r);

Circle();

float area();

//float operator+(Circle &c2) const;

~Circle() {}

private:

float radius;

};

Point::Point(Point &p) {

x = p.x;

y = p.y;

}

Circle::Circle(float r) {

radius = r;

}

Circle::Circle() {

}

float Circle::area() {

return PI * radius * radius;

}

/*float Circle::operator + (Circle &circle2) const {

return(PI * circle2.radius *circle2.radius + PI * radius * radius);

}*/

int main() {

float sum;

Point b(4, 5);

cout <

float radius;

cout << "Enter the radius of Circle:";

Circle circle1(3);

float area1 = circle1.area();

Circle circle2(4);

float area2 = circle2.area();

cout << "Circle1 area is" << area1 << endl;

cout << "Circle2 area is" << area2 << endl;

cout << "sum of area1 and area2 is\n" << area1 + area2 << endl;

sum = circle1+circle2;

float area;

//area = circle1 + circle2;

cout << "area = " << area << endl;

return 0;

}

Circle operator+(const Circle& circle1,const Circle& circle2)

{

return(circle1.radius * circle1.radius*PI+PI * circle2.radius * circle2.radius);

}

 

/*

/*float Circle::operator + (Circle &circle2) const {

return(PI * circle2.radius *circle2.radius + PI * radius * radius);

}*/用这种方式float area;

//area = circle1 + circle2;可以返回float的area

而现在没被注释掉的部分用friend Circle operator+(const Circle& circle1,const Circle& circle2);编译出现错误,

严重性 代码 说明 项目 文件 行 禁止显示状态

错误 C2440 “=”: 无法从“Circle”转换为“float” Project7 该如何更改

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4605/viewspace-3170676/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2019-07-10

  • 博文量
    159
  • 访问量
    739