![]() |
#2
xlhcy20142014-03-12 21:09
|

#include<iostream>
using namespace std;
class A
{
public:
A(){cout<<"执行构造函数\n";}
A(A&){cout<<"执行复制构造函数\n";}
~A(){cout<<"执行析构函数\n";}
void print(){cout<<"x="<<x<<endl;}
void set(int i){x=i;}
private:
int x;
};
const A & func(const A & one);
int main()
{
A a;
//A b=func(a); //这样写不行,提示说不能把 const class A转换成 class A
// const A c=func(a); //这样写也不行,提示也说不能把 const class A转换成 class A,到底怎么回事?
return 0;
}
const A & func(const A &one)
{
return one;
}
using namespace std;
class A
{
public:
A(){cout<<"执行构造函数\n";}
A(A&){cout<<"执行复制构造函数\n";}
~A(){cout<<"执行析构函数\n";}
void print(){cout<<"x="<<x<<endl;}
void set(int i){x=i;}
private:
int x;
};
const A & func(const A & one);
int main()
{
A a;
//A b=func(a); //这样写不行,提示说不能把 const class A转换成 class A
// const A c=func(a); //这样写也不行,提示也说不能把 const class A转换成 class A,到底怎么回事?
return 0;
}
const A & func(const A &one)
{
return one;
}
//A b=func(a); //这样写不行,提示说不能把 const class A转换成 class A
// const A c=func(a); //那我这样写也不行,提示也说不能把 const class A转换成 class A,到底怎么回事?
我是用的是VC6.0的编程环境。