如何将运算符重载函数重载成一般函数形式
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 22:11:28
如何将运算符重载函数重载成一般函数形式
#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.
---------------------你的问题---------------------------
下面我说一下你的程序.
在你的operato
---------------------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.
---------------------你的问题---------------------------
下面我说一下你的程序.
在你的operato
如何将运算符重载函数重载成一般函数形式
设计一个矩形类 有构造函数 析构函数 GET函数 SET函数以及下列重载的运算符 重载加法运算符+ 将两个矩形相
用C++语言 定义复数类complex,使用成员函数重载运算符+-,使用友元函数重载运算符.
运算符重载为成员函数或全局函数怎么从形式上来判断呢?友元函数呢?
设计一个矩形类 包括构造函数 析构函数 GET SET函数 重载运算符 + 将两个矩形相加
定义一个复数类,实部和虚部都是整数类型,用成员函数形式重载复数的“+”运算,用友元函数的形式重载 “
编一个程序,用成员函数重载运算符“+”和“-”,将两个矩阵(这两个矩阵均为2行3列)相加和相减.
定义复数类,重载+,*为复数类的成员函数,实现复数类对象的+,*运算.
C# 运算符重载是怎么一回事,一般哪里用,起什么作用?
1)编写复数类,重载加法+、减法-、乘法*等运算符,其中加法+为友元函数,其他为复数类成员函数 2)设计评
定义三角形triangle类,重载运算符“>”,使之用于两个三角形面积大小的比较,并写主函数main()测试它
c++函数同名不同返回值算重载?