中易网

C++ 为什么常成员函数不能调用非常成员函数原理

答案:2  悬赏:30  
解决时间 2021-03-20 20:25
我了解到
假设,非常对象可以调用常成员函数function_A
type function_A() const {
}
相当于
tpye function_A (const T * this) //相当于给每个参数添加const
{
function_B(); //function_B和function_A都是同一个类的成员函数

// 调用function_B时,function_B实际为 type function(T * this)
//给function_B中传递的this实际为function_A中用const修饰的this,

//从而造成了常对象调用非常成员函数function_B(),所以产生了问题。

}

求解答,这只是猜想,求权威解答,证据最重要。谢谢
最佳答案
常成员函数调用非常成员函数,返回值可能是非const的,与常常成员函数冲突,个人想法,不 喜勿喷
全部回答

函数声明,只是告诉下面的程序有这样的一个函数存在,函数定义就是实现这个函数的功能,如果在用到这个函数进行定义,就可以不用函数声明了,

举个例子:

void fun(); //这里就是函数声明,

void main();

{

    fun(); //要使用fun这个函数,因为前面个声明,所以编译器会往下找,如果前面没声明的话,就会报错

}

void fun()   //这里就是函数定义,功能就是打印一个字符串

{

printf("hello");

}

也可以不要声明,在使用前面直接定义,如下:

void fun()   //这里就是函数定义,功能就是打印一个字符串

{

printf("hello");

}

void main();

{

    fun(); //因为前面有定义,所以不会报错

}

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问2012年1月14 15日南京到南通的火车车次范
徐州市泉山区人民法院诉讼服务中心在哪里啊,
一个光碟《画皮》是千年女妖吃一个好人最后没
外地户口的人,在台湾最长可以呆多久?
中华2012年5月满11岁他是什么年出生的
各位师傅农业银行卡第三方托管是不是就是开通
《爸爸带我去春游》500作文
【办公室装修设计】办公室装修风水
听说浦东那里有个大拇指广场。。。
甘肃省公积金可以在陕西省贷款买房吗
windows 2008安装域控出现无法创建该DNS委派
【长沙搬家】【长沙搬家公司】【长沙搬家公司
赣州宝葫芦水上乐园什么时候才会开?
“用什么书写精彩”作文 急求!
六盘水到盛水湾温泉的路怎么走呀。。。。。请
推荐资讯
请问在哪里能学到正宗怀化芷江鸭肉粉
问:修高铁之前是不是先架高压线?
哈士奇多少钱一只比熊多少钱一只
徐梓宸名字好不好!谢谢
为什么我的语文成绩怎么也提不起来?
美的电器东莞长安霄边维修部在哪里?
陈加坡的电影院叫什么名字
烤鱼炉子哪家比较好
心脏做支架的人怎样锻炼
东莞有哪些大的桌球城?想在桌球城找份工作。
嘉华鲜花饼店可以加盟吗??
根号8等于多少
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?