![]() |
#2
rjsp2014-03-10 08:32
|

#include<iostream>
using namespace std;
class num
{
public:
num(){n=1;cout<<"默认构造函数\n";}
num(int i){n=i;cout<<"带参数的构造函数\n";}
num(num &a){this->n=a.n;cout<<"copy\n";}
~num(){cout<<"the end\n";}
int get()const{return n;}
num & operator ++() //这里,我本来是想按引用返回,避免产生*this的副本,但最后还是产生了,为什么加了引用都不行? 如何不创建副本或拷贝。
{
++n;
return *this;
}
private:
int n;
};
int main()
{
num i;
cout<<"i:"<<i.get()<<endl;
num ab=++i;
cout<<"i:"<<ab.get()<<endl;
return 0;
}
using namespace std;
class num
{
public:
num(){n=1;cout<<"默认构造函数\n";}
num(int i){n=i;cout<<"带参数的构造函数\n";}
num(num &a){this->n=a.n;cout<<"copy\n";}
~num(){cout<<"the end\n";}
int get()const{return n;}
num & operator ++() //这里,我本来是想按引用返回,避免产生*this的副本,但最后还是产生了,为什么加了引用都不行? 如何不创建副本或拷贝。
{
++n;
return *this;
}
private:
int n;
};
int main()
{
num i;
cout<<"i:"<<i.get()<<endl;
num ab=++i;
cout<<"i:"<<ab.get()<<endl;
return 0;
}
[ 本帖最后由 xlhcy2014 于 2014-3-8 23:34 编辑 ]