c++常对象可以访问非常成员变量和非常成员函数吗

c++非常对象可以访问常成员变量和常成员函数吗... c++非常对象可以访问常成员变量和常成员函数吗 展开
 我来答
帐号已注销
2012-06-04 · TA获得超过3000个赞
知道大有可为答主
回答量:1338
采纳率:75%
帮助的人:1296万
展开全部
可以。但是没有“对象访问变量”这一说法。
#include<iostream>
using namespace std;

class CTest
{
public:
void fun( void )const
{
cout<< "const function test.\n";
}
};

int main()
{
CTest const ca = CTest();
ca.fun();
}
你说的应该是这个意思:非常成员函数可以访问常成员变量。
#include<iostream>
using namespace std;

class CTest
{
public:
CTest() : m_a( 0 ){}
void fun( void )
{
cout<< m_a <<endl;
}
private:
int const m_a;
};

int main()
{

}
反过来也可以,常成员函数也可以访问非常成员变量。但是,两种情况均不能修改变量,因为一个是常成员函数不能修改变量,而另一种情况是常成员变量不能被修改。
追问
你 ca 访问的是常成员函数啊?
追答
看错了。
CTest const ca = CTest();
直接改成CTest ca;就行了。这就是你说的“非常对象访问常成员函数”这种情况了。
常对象一定是不能访问非常成员函数的,因为编译器不知道你的函数在运行时会不会把常对象给修改了,所以就一定要在编译阶段就阻止你。
GiraKoo
2012-06-04 · 还没有任何签名哦
GiraKoo
采纳数:3949 获赞数:11110

向TA提问 私信TA
展开全部
常对象是不能够修改成员变量,
所以你可以读取,但是不能修改。
为了避免常对象调用的函数对成员变量进行修改
所以常对象只能够调用常成员函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shupeng947
2012-06-17
知道答主
回答量:24
采纳率:0%
帮助的人:3.8万
展开全部
dfgsdfgds
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式