1.默认赋值运算符函数
Classname & Classname::operator=(const Classname&source)
{
//
}
例子(复数类的默认复制运算符函数)
Complex &Complex::operator=(Complex& source)
{
real=source.real;
imag=source.imag;
return *this;
}
完整程序
using default assignment operator function for Class string(默赋值运算符认的)
#include<iostream>
#include<string.h>
using namespace std;
class String
{
public:
String(char*s)
{
ptr=new char[strlen(s)+1];//这里为什么要加1??我减二也可以运行啊
strcpy(ptr,s);
}
~String(){delete ptr;}
void display(){cout<<ptr<<endl;}
private:
char*ptr;
};
int main()
{
String s1("hello");
cout<<"s1:";
s1.display();
{
String s2("hi");
s2=s1;
cout<<"s2:";
s2.display();
}
cout<<"s1:";
s1.display();//为啥这里输出一个箭头?
return 0;
}
用户自定义的赋值运算符函数
语法
class ClassName
{
public:
ClassName &operator=(const ClassName &);
};
ClassName & ClassName::operator=(const ClassName &)
{
}
<<and >>重载
语法:
ostream & operator<<(ostream&,Classname&);