中易网

C++中通过类的对象访问类的成员函数 和通过类的作用域访问成员函数有什么区别啊??

答案:4  悬赏:70  
解决时间 2021-01-26 14:47
C++中通过类的对象访问类的成员函数 和通过类的作用域访问成员函数有什么区别啊??
最佳答案
成员函数被C++编译器扩展为一个外部函数,类的所有对象共享一份成员函数,只要知道了正确的类型,编译器就能找到函数入口地址。
但如果这个函数用到了类的成员变量就会crash。因为成员变量是专属于每一个对象的!
所以本质就是因为this指针作怪!成员函数里面没有用到this指针,程序就不会出现问题!
全部回答
我觉得 第一个是针对 指定的 对象 ,第二个 有吗?
类的对象调用类的成员函数,用 '.' 操作符,对象是类的一个实例化,可以使用类中定义的操作。
而作用域操作符,是用来说明成员是属于哪个类,或者在类外定义函数时所用的,说白了还是指明函数属于哪个类。
第一个是对一个具体的对象调用,用“.”
第二个是代表这是哪个类内的成员函数
例如
class point
{
public:
void output();
}
class MyPoint
{
public:
void output();
}
你分别在两个类里面 定义了叫output的函数 但是你还没写这两个函数 只是声明
然后再下面 或者再另一个文件中
你可以具体实现这两个函数
这时候如果直接写
void output() { }
编译器就不知道你是哪个类里的函数了
所以如果你要实现point里的函数 就要
void point::output() {}
Mypoint里的就是
void Mypoint::output() {}追问既然可以通过实例化的对象访问成员函数,为什么还要设计一个作用域?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
湘潭北站到湘潭 打的要多久 大概多少钱
入门级短波电台要怎么选购
收费站的人的交警还路政?
和很好的同性朋友接吻
爱上一个人,恋上一座城.我该离开吗
民和回族土族自治县人民检察院反贪污贿赂局地
求恶之P的恶之系列和七宗罪系列。
关于春光的成语?
油桶里的油没清,能用桶直接沤饼肥水吗
这两款机油有什么不同?
有关权衡利弊的名人名言
angel发型(.1号店)地址在什么地方,我要处理
原装老裱严廷桢书法对联
小女孩谁有
几除以几等于8余1有几种做法
推荐资讯
是不是崖柏,是老料还是新料做的。 味道有点
100元左右的宠物狗有哪些品种
标准费歇尔投影式中 主碳链直立,编号小的居
刚刚看完晓暴的《铁狱迷情》,把我虐得不要不
家里本来都穷,可老天又给我个唐宝宝,我如何是
把91分之一化成循环小数
国家双向扶贫工程是骗局吗
顺序查找法
御欣茶社怎么去啊,我要去那办事
BEVANDA的无加糖白咖啡和特级白咖啡哪个比较
重启了N次还是这样,而且PS/2键不能用。
第一次在外地盗窃1800元最高能判多长时间
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?