#include "stdafx.h"#include using namespace std;class date{public:date(int oa=1):a(oa){}int a;};date &operator=(date &d1,date d2){d1.a=d2.a;return d1;}/*这里,我不想把operator=写作class date的成员,但却出现了错误*/int _tmain(int argc,
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 07:31:01
![#include](/uploads/image/z/12456308-20-8.jpg?t=%23include+%22stdafx.h%22%23include+using+namespace+std%3Bclass+date%7Bpublic%3Adate%28int+oa%3D1%29%3Aa%28oa%29%7B%7Dint+a%3B%7D%3Bdate+%26operator%3D%28date+%26d1%2Cdate+d2%29%7Bd1.a%3Dd2.a%3Breturn+d1%3B%7D%2F%2A%E8%BF%99%E9%87%8C%2C%E6%88%91%E4%B8%8D%E6%83%B3%E6%8A%8Aoperator%3D%E5%86%99%E4%BD%9Cclass+date%E7%9A%84%E6%88%90%E5%91%98%2C%E4%BD%86%E5%8D%B4%E5%87%BA%E7%8E%B0%E4%BA%86%E9%94%99%E8%AF%AF%2A%2Fint+_tmain%28int+argc%2C)
#include "stdafx.h"#include using namespace std;class date{public:date(int oa=1):a(oa){}int a;};date &operator=(date &d1,date d2){d1.a=d2.a;return d1;}/*这里,我不想把operator=写作class date的成员,但却出现了错误*/int _tmain(int argc,
#include "stdafx.h"
#include
using namespace std;
class date
{
public:
date(int oa=1):a(oa){}
int a;
};
date &operator=(date &d1,date d2)
{
d1.a=d2.a;
return d1;
}
/*
这里,我不想把operator=写作class date的成员,但却出现了错误
*/
int _tmain(int argc,_TCHAR* argv[])
{
date d1,d2(7);
d1=d2;
cout
#include "stdafx.h"#include using namespace std;class date{public:date(int oa=1):a(oa){}int a;};date &operator=(date &d1,date d2){d1.a=d2.a;return d1;}/*这里,我不想把operator=写作class date的成员,但却出现了错误*/int _tmain(int argc,
看第3条:
基本规则
1.一元操作符可以是不带参数的成员函数[1]或带一个参数的非成员函数[1].
2.二元操作符可以是带一个参数的成员函数[1]或带两个参数的非成员函数[1].
3.operator=、operator[]、operator()、operator->只能定义为成员函数[1].
4.operator->的返回值必须是一个指针或能使用->的对象.
5.重载 operator++ 和 operator-- 时带一个 int 参数表示后缀,不带参数表示前缀.
6.除 operator new 和 operator delete 外,重载的操作符参数中至少要有一个非内建数据类型.
7.x@y 搜索范围为:x 成员函数--> 全局函数/X所在名字空间中的函数/Y所在名字空间中的函数/X的友元函
数/Y的友元函数.
8.重载的的操作符应尽量模拟操作符对内建类型的行为.