2 dfgrgegsezgzs dfgrgegsezgzs 于 2016.03.13 16:43 提问

const成员函数内将该类的数据成员变成const?
c++

#include
using namespace std;
class A
{
public:
void action()
{
cout << "Action in class A!" << endl;
}
};
class B
{
A a;
int s;
public:
void action()
{
cout << "Action in class B!" << endl;
}
A operator->() const
{
return &a;
}
};
class C
{
B b;
public:
void action()
{
cout << "Action in class C!" << endl;
}
B operator->() const
{
return b;
}
};
int main()
{
C *pc = new C;
pc->action();
C c;
c->action();
return 0;
}
在class B中重载->函数被定义为const的。报错说const A
不能转换为A*

1个回答

cxsmarkchan
cxsmarkchan   2016.03.13 17:01
A operator->() const
{
return &a;
}

修改为:

A* operator->()
{
return &a;
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!