成员函数和普通函数有什么不同???

raymond323 2005-05-20 11:01:15
例如普通函数void pmf()中 pmf可表示地址 而成员函数必须用&C::pmf来表示函数地址 这是为社么???
谢谢
...全文
311 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdy_8212 2005-05-22
  • 打赏
  • 举报
回复
作用域的问题。对象编辑的思想。两者是相同的,只不过一个是被绑定到某个域。
xiaozscs 2005-05-21
  • 打赏
  • 举报
回复
因为成员函数在c::中定义的
zhousqy 2005-05-21
  • 打赏
  • 举报
回复
成员函数可以访问数据成员。
TomDebug 2005-05-21
  • 打赏
  • 举报
回复
函数作用域不一样
普通函数的作用域如果是extern则是整个工程中使用
如果是局部函数则是在函数内部使用
而类的成员函数是在类的作用域内使用
xjp6688 2005-05-21
  • 打赏
  • 举报
回复
呵呵,好好看看书
chon81 2005-05-21
  • 打赏
  • 举报
回复
概念上是成员函数是针对类内部的函数

观念上可以认为都一样的,你可以把成员函数当做普通函数使用了,这就是面向过程的编程思想。
也可以认为不一样,把成员函数只处理所在类的数据的函数,这就是面向对像的编程思想。
James_ht 2005-05-21
  • 打赏
  • 举报
回复
成员函数是对象方法.
lan_yanjing 2005-05-21
  • 打赏
  • 举报
回复

再好好学学什么是面向对象思想吧

hell_wolf 2005-05-21
  • 打赏
  • 举报
回复
普通函数是情人,大家都在泡;

成员函数是老婆,是属于个人的,乱泡别人的会报告错误。
yanyuxin 2005-05-21
  • 打赏
  • 举报
回复
续上:
举个例子,比如一个“人”的类,它有个成员函数“吃饭()”。
他的实例化对象有“张三”张三的儿子(相当于子类的实例)“张小二”以及“李四”。
现在你执行 “吃饭()”,那你是让谁”吃饭“呢。
而普通函数没有对象的限制,相当于调用它的就是它的对象。
yanyuxin 2005-05-21
  • 打赏
  • 举报
回复
&C::pmf来表示函数地址,之所以要这样做是因为c++是面向对象的,它支持继承,并且一个类可以有很多实例也称对象。
此中表示是程序需要知道你调用的是哪个类的哪个对象的函数,要不程序如何知道你的函数对谁进行操作呢。
其实它隐含的传递了一个this指针,以指向这个对象的函数。
只有在类中声明的静态函数不需要这样,也可以使用,以为它不针对任何对象。
具体方面请参照相关书籍。
MagicCarmack 2005-05-21
  • 打赏
  • 举报
回复
它们之间的差别就是C和C++的区别!
nodummy 2005-05-21
  • 打赏
  • 举报
回复
例如普通函数void pmf()中 pmf可表示地址 而成员函数必须用&C::pmf来表示函数地址 这是为社么???
谢谢
====================

成员函数的类型是ret_type (ClassName::*)(paralist),而普通函数的类型是ret_type (*)(paralist),类的静态成员函数类型同普通函数……
lonelyforest 2005-05-21
  • 打赏
  • 举报
回复
这个问题不太重要吧
qwprince2004 2005-05-20
  • 打赏
  • 举报
回复
成员函数是实现类的定义行为,实用方面来看 和普通函数一样的 但是成员函数是完成类的特定工作的. 如初始化类的数据成员等 构造函数 析构函数 复制构造函数 这都是成员函数

别的还有就是 使用成员函数能更好的体现OO的思想

::<--是范围解析运算符 使用特定类的成员函数必须使用这个符号以标明函数为特定类的成员函数

呵呵 能想到就这么多了 不知道对你有帮助没
llmsn 2005-05-20
  • 打赏
  • 举报
回复
C::是表示其属于哪个域里面的函数,&C::pmf是C域里面成员函数的地址.
sunman1982 2005-05-20
  • 打赏
  • 举报
回复
&C::是表明他的域 就是属于的关系

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧