|
|
#include <iostream>
using namespace std;
class A
{
public:
A()
{
m_x = 1;
}
int Get()
{
return m_x;
}
operator +(const A &A2)
{
int sum;
sum = m_x + A2.Get(); //(1)
sum = A2.m_x + m_x; //(2)
return sum;
}
private:
int m_x;
};
int main()
{
A A1;
A A2;
int s;
s = A1+A2;
cout<<s<<endl;
cin.get();
}
当(1)被注释的时候,可以被编译通过! 但是当(1)不被注释的时候报出的错误是“A::Get” : 不能将“this”指针从“const A”转换为“A &”,这是为什么啊!
(2)虽然能被编译通过,但是这好象是违反了私有数据不能被访问的规定啊!
A2.m_x 这是私有数据啊!
小弟的编译环境是 VS2003
请大家多多指教啊!
|
|