如何将运算符重载函数重载成一般函数形式#include using namespace std;class Cube{ private: double side; public: Cube(double side); double volume(); bool operator

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 10:26:38
如何将运算符重载函数重载成一般函数形式#includeusingnamespacestd;classCube{private:doubleside;public:Cube(doubleside);do

如何将运算符重载函数重载成一般函数形式#include using namespace std;class Cube{ private: double side; public: Cube(double side); double volume(); bool operator
如何将运算符重载函数重载成一般函数形式
#include
using namespace std;
class Cube
{
private:
double side;
public:
Cube(double side);
double volume();
bool operator

如何将运算符重载函数重载成一般函数形式#include using namespace std;class Cube{ private: double side; public: Cube(double side); double volume(); bool operator
你的问题关键出在const成员函数上.这个概念你或许不常见,我先给你说一下,之后给你解决办法.
---------------------const成员函数---------------------------
类的const成员函数的格式为:
返回类型 函数名() const
{
...
}
也就是在函数名后面加一个const.类的这种成员函数不允许改变类的成员数据值,也就是说在这种函数体内,不能有改变(或企图改变)类的成员数据的操作,否则会发生编译错误.
比如:
class A
{
public:
int a;
void f() const
{
a = 1;
}
};
这是错误的,因为f()中改变了成员数据a的值.
再如:
class A
{
public:
int a;
void set()
{
a = 1;
}
void f() const
{
set();
}
};
这也是错误的,因为set()函数会改变成员数据的值,在f()中不应调用它.
再如:
class A
{
public:
int a;
void set()
{
}
void f() const
{
set();
}
};
这仍然是错误的.虽然在set()中并有改变a的值,但由于set()函数不是const函数,编译器仍然“认为”它会改变a的值,所以在f()中也不能调用set().只要一个函数不被const修饰,编译都认为它会改变成员数据的值!
不光const函数如此,被const修饰的对象的值也是不允许改变的.比如你程序中的参数const Cube& aBox.
---------------------你的问题---------------------------
下面我说一下你的程序.
在你的operator

如何将运算符重载函数重载成一般函数形式#include using namespace std;class Cube{ private: double side; public: Cube(double side); double volume(); bool operator 设计一个矩形类 有构造函数 析构函数 GET函数 SET函数以及下列重载的运算符 重载加法运算符+ 将两个矩形相 运算符重载为成员函数或全局函数怎么从形式上来判断呢?友元函数呢? 设计一个矩形类 包括构造函数 析构函数 GET SET函数 重载运算符 + 将两个矩形相加 什么是重载函数?举例说明 定义一个复数类,实部和虚部都是整数类型,用成员函数形式重载复数的“+”运算,用友元函数的形式重载 “ 求助——定义复数类complex,重载运算符“+”的C++程序题定义一个复数类complex,重载运算符“+”,使之能用于复数的加法运算.将运算符函数重载为非成员、非友元的普通函数.编写程序,求两个复 用C++语言 定义复数类complex,使用成员函数重载运算符+-,使用友元函数重载运算符.定义复数类complex,使用成员函数重载运算符+-,使用友元函数重载运算符,实现复数的+-×,并定义主函数,对这些运 定义一个复数类,通过重载运算符:*,/,直接实现二个复数之间的乘除运算编写一个完整的程序,测试重载运算符的正确性.要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载.⑴ 编一个程序,用成员函数重载运算符“+”和“-”,将两个矩阵(这两个矩阵均为2行3列)相加和相减.编一个程序,用成员函数重载运算符“+”和“-”,将两个矩阵(这两个矩阵均为2行3列)相加 c++函数重载的表现形式具体有哪几种 利用成员函数对二元运算符进行重载时,它的左操作数和右操作数是什么? 定义一个复数类CComplex,通过重载运算符 + ,直接实现两个复数之间的加法运算.定义一个复数类CComplex,通过重载运算符”+”,直接实现两个复数之间的加法运算.运算符”+”用成员函数实现重载. 定义复数类,重载+,*为复数类的成员函数,实现复数类对象的+,*运算. c++中..什么事函数对象什么函数对象?那这个..重载操作符就是...函数对象? 1.已知在一个类体中包含以下函数原型:Date operator-(Date)const;下列关于这个函数的叙述中,错误的是:A.这是运算符-的重载运算符函数;B.这个函数所重载的运算符是一个一元运算符;C.这 c++函数同名不同返回值算重载?我想知道c++ 中函数重载的条件:函数同名同参数表不同返回值算重载吗? 定义三角形triangle类,重载运算符“>”,使之用于两个三角形面积大小的比较,并写主函数main()测试它