加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

c++中冒号(:或::)及->的用法 c++中“-> *”运算符是什么意思

(2014-05-27 10:35:35)
标签:

365

it

linux

c

分类: LINUX资料
c++中冒号(:或::)及->的用法 c++中“-> *”运算符是什么意思?(引号内)
 

 


是C++里的,是“域操作符”。比如声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成void A::f(),表示这个f()函数是类A的成员函数。::一般还有一种用法,就是直接用在全局函数前,表示是全局函数。比如在VC里,你可以在调用API函数里,在API函数名前加::

一个冒号(:)表示继承关系     即 [子类]:[父类]

两个冒号(::)表示是引用成员函数 即 [类]::[成员函数]

->为指针引用其成员用的. 即[对象指针名]->[指针所指对象的成员]

 

 

 


你定义了一个指针,该指针指向一个类,比如pc,然后你又定义了一个函数指针,该指针指向上述类中的某个成员函数,比如pm,然后你可以用(pc-> *pm)()来执行该成员函数。
        总之这个符号就是用于提取指向成员函数的指针所指向的函数。
-> *实际上是两个运算.  
1   ->   取成员操作
2   *     取指针所指针的对象.
-> *往往用于通过 "类成员函数指针 "来调用 "类成员函数 "的场合.

 

 


所谓运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。如果还有什么不明白,
type classname::operate=(){}
说明:type表明返回的类型,classname表明这个方法属于的类名,operate是一定要写的,"="号为你要重载的运算符,可以为"+","/"等等,()内为你传参,{}为你的方法具体实现过程

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有