C++试题 类定义 运算符重载。

定义一个矩形类Rectangle,其数据成员包括长|和宽w,要求如下:
(1) 定义3个构造函数,一个不带参数的构造函数,一个复制构造函数,一个带参数的构造函数,且要求参数的默认值为1.0和1.0;
(2) 重载运算符<<,以实现直接输出矩形类的对象,要求输出格式为二元对的形式(1,w);
(3) 编写主函数测试定义的类,即测试编写的4个函数。

代码如下:

#include <iostream>

using namespace std;

class Rectangle {

public:
Rectangle(int length = 1.0, int width = 1.0) : l(length), w(width) {
}

Rectangle(const Rectangle& other) {
l = other.l;
w = other.w;
}

friend ostream& operator<<(ostream& out, const Rectangle& rect) {
out << "(" << rect.l << "," << rect.w << ")";
return out;
}

private:
float l;
float w;
};


int main()
{
Rectangle rect1;
cout << rect1 << endl;

Rectangle rect2(2, 3);
cout << rect2 << endl;

Rectangle rect3 = rect2;
cout << rect3 << endl;

system("pause");
return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

C++ 重载单目运算符问题
Time Time∷operator++( ) \/\/定义运算符重载函数{if(++sec>=60) \/\/这里的++sec就是实现sec=sec+1,再判断sec是否超过60{sec-=60; \/\/满60秒进1分钟++minute;}return *this; \/\/返回当前对象值}

C++关于运算符重载的一道题
选C.看题目:-- 若在表达式“y\/x”(y在前面),"\/"是作为成员函数重载(成员函数)的运算符 调用y的成员函数operator\/, 也就是 y.operator\/(x)

关于c++中运算符重载的题 谢谢 有一个double的数和一个复数相加 分两种...
class Complex { public:Complex(){real=0;imag=0;}\/\/定义构造函数 void write();\/\/输入 void display();\/\/输出 operator double(){return real;}\/\/类型转换函数 Complex(double r){real=r;imag=0;}\/\/转换构造函数 friend Complex operator +(Complex &c1,Complex &c2);\/\/运算符重载 privat...

C++定义运算符重载后使用,提示没有与这些操作数匹配的运算符
使用cout为了不能改变类的属性,必须加const,把头文件和实现部分改为 friend ostream & operator<<(ostream & os,const 类名称 &co);

C++运算符重载什么意思啊、、看不懂。。。麻烦说通俗点,3Q!
因为像<、>、==这些运算符在C++中已有定义,作为C++的标准的一部分,所以我们要重新定义他们的用法时,就要用重载,就是要使用operator关键字。例如有这么个类 class MyClass{ int n; string name; bool operator ==(MyClass a,MyClass b) { return a.n==b.n && a.name==b...

C++运算符重载,+-*\/的重载,返回值为什么是对象而不是对象的引用?而流操...
原因是:+,-,*等返回不了引用,比如+运算符,可以如下重载(为了简单,假设A 只有int x;int y)A operator+(A a,A b) {A sum; sum.x=a.x+b.x; sum.y=a.y+b.y; return sum; } 分析不能用引用的原因: 函数传入了两个参数a,b,并且+只能传入两个参数(c++不允许自己...

...重载运算符加减,主函数定义类对象并调用运算重载符。
代码如下:\/*1.复数(实部运算 +虚部运算) 1+2i 1-3i 加:2-i 减 0-5i1 重载实现复数一个输入和输出 普通写法实现输入 调用函数的形式实现输出2. 类重载实现复数的加法和减法 加法:类重载 减法:友元重载*\/#include<iostream>using namespace std;class A{private:int...

c++中运算符(\\" << \\")重载ostream&是什么意思
运算符重载,是对现有操作符使用于自定义用户类型的一种扩展,但具体的性质不能变,如<<表示流操作符左侧对象为流的本质不能变,+为两元操作符本质不能变,再如,对于->重载必须返回指针类型不可变!即,即使进行运算符重载,也只是有限自由!friend ostream & operator << (ostream &os, const C...

C++重载输入和输出运算符
在C++中,标准库的左移运算符<>已经被重载,用于不同数据的输入输出,但仅限于内置类型和标准库类。若自定义数据类型,需自行重载输入输出运算符。以complex类为例,演示重载输入输出运算符。目标是让复数输入输出如同基本类型一样简便。复数输出形式为cout<<<,输入形式为cin>>num1>>num2;。为实现此...

c++关于运算符重载的问题
1 char &operator[](int i);\/\/请说明此行的&是什么作用 函数的声明,防止在没有定义函数实体之前,被早先调用致使编译错误 2 char &charArray::operator[](int i)\/\/&是什么用,去掉会出错 返回的是一个char 型的变量,去掉的话返回的是char型的值。前者可以作为变量对它进行赋值。后者只是一个...

相似回答