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

classpoint{public:voidoutput(){}staticvoidinit(){}private:intx,y;}voidmian(){pointpt;... class point
{
public:
void output()
{
}
static void init()
{

}
private:
int x,y;
}

void mian()
{
point pt;
pt.init();
pt.output();//通过类的对象调用类内部的成员,不会出现错误

point::init();
point::output();
}
展开
 我来答
冰陵启示录
2012-04-29 · TA获得超过287个赞
知道答主
回答量:54
采纳率:0%
帮助的人:44.2万
展开全部
第一个是对一个具体的对象调用,用“.”

第二个是代表这是哪个类内的成员函数

例如
class point
{
public:
void output();
}

class MyPoint
{
public:
void output();
}

你分别在两个类里面 定义了叫output的函数 但是你还没写这两个函数 只是声明

然后再下面 或者再另一个文件中
你可以具体实现这两个函数
这时候如果直接写
void output() { }
编译器就不知道你是哪个类里的函数了

所以如果你要实现point里的函数 就要
void point::output() {}
Mypoint里的就是
void Mypoint::output() {}
追问
既然可以通过实例化的对象访问成员函数,为什么还要设计一个作用域?
never715
推荐于2018-04-13 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:463万
展开全部
成员函数被C++编译器扩展为一个外部函数,类的所有对象共享一份成员函数,只要知道了正确的类型,编译器就能找到函数入口地址。
但如果这个函数用到了类的成员变量就会crash。因为成员变量是专属于每一个对象的!
所以本质就是因为this指针作怪!成员函数里面没有用到this指针,程序就不会出现问题!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-04-29
展开全部
类的对象调用类的成员函数,用 '.' 操作符,对象是类的一个实例化,可以使用类中定义的操作。
而作用域操作符,是用来说明成员是属于哪个类,或者在类外定义函数时所用的,说白了还是指明函数属于哪个类。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhu91aizhu
2012-04-29 · TA获得超过178个赞
知道答主
回答量:108
采纳率:100%
帮助的人:72.7万
展开全部
我觉得 第一个是针对 指定的 对象 ,第二个 有吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式