64,654
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include"stdlib.h"
using namespace std;
class Cmessage
{
private:
char* pmessage;
public:
Cmessage(const char* text = "default message.")
{
pmessage = new char[strlen(text)+1];
strcpy(pmessage,text);
cout<<"instructor."<<endl;
}
~Cmessage()
{
delete []pmessage;
cout<<"destructor."<<endl;
}
void showit()
{
cout<<pmessage<<endl;
}
Cmessage(Cmessage& amess)
{
pmessage = amess.pmessage;
amess.pmessage = NULL;
cout<<"fuzhigouzao."<<endl;
}
Cmessage& operator=(Cmessage& amess)
{
if(this->pmessage==amess.pmessage)
return *this;
delete [] pmessage;
this->pmessage = amess.pmessage;
amess.pmessage = NULL;
cout<<"overload ="<<endl;
return *this;
}
Cmessage operator+(const Cmessage& amess)const
{
cout<<"overload +"<<endl;
size_t len = strlen(this->pmessage)+strlen(amess.pmessage)+1;
Cmessage message;
message.pmessage = new char[len];
strcpy(message.pmessage,this->pmessage);
strcat(message.pmessage,amess.pmessage);
return message;
}
};
int main()
{
Cmessage text1("text1 message.");
Cmessage text2("text2 message.\n");
Cmessage text3;
cout<<"text3 = text1+text2"<<endl;
text3 = text1+text2; //**************//
text3.showit();
return 0;
}
text3.showit()
,text3.operator=()
依然被重载了,继续求教~#include<iostream>
using namespace std;
int fun1(int& sum)
{
cout<<"rvalue"<<sum<<endl;
return 0;
}
int main()
{
int sum = 0;
int a = 1;
int b = 1;
fun1(a+b);
return 0;
}