句点运算符访问成员"/>
C++中使用句点运算符访问成员
C++中使用句点运算符访问成员
学过C语言的都知道 struct(结构体)创建出来的对象可以通过对象成员选择运算符(.)来访问C语言结构体内部成员。
一个人的例子是 Adam,男性, 1970 年出生于阿拉巴马州。 firstMan 是 Human 类的对象,是这个类存在于现实世界(运行阶段)的化身:
Human firstMan; // an instance i.e. object of Human
类声明表明, firstMan 有 dateOfBirth 等属性,可使用句点运算符( .)来访问:
firstMan.dateOfBirth = "1970";
这是因为从类声明表示的蓝图可知,属性 dateOfBirth 是类 Human 的一部分。仅当实例化了一个对象后,这个属性在现实世界(运行阶段)才存在。句点运算符( .)用于访问对象的属性。
这也适用于 IntroduceSelf( )等方法:
firstMan.IntroduceSelf();
如果有一个指针 firstWoman,它指向 Human 类的一个实例,则可使用指针运算符( ->)来访问成员(这将在下一小节介绍),也可使用间接运算符( *)来获取对象,再使用句点运算符来访问成员:
Human* firstWoman = new Human();
(*firstWoman).IntroduceSelf();
例如在程序中可以写出以下语句:
stud1.num=1001; //假设num已定义为公用的整型数据成员
表示将整数1001赋给对象stud1中的数据成员num。其中“.”是成员运算符,用来对成员进行限定,指明所访问的是哪一个对象中的成员。 注意不能只写成员名而忽略对象名。
访问对象中成员的一般形式为
对象名.成员名
不仅可以在类外引用对象的公用数据成员,而且还可以调用对象的公用成员函数,但同样必须指出对象名,如
stud1.display( );//正确,调用对象stud1的公用成员函数
display( );//错误,没有指明是哪一个对象的display函数
由于没有指明对象名,编译时把display作为普通函数处理。 应该注意所访问的成员是公用的(public )还是私有的(private )。只能访问public成员,而不能访问private成员, 如果已定义num为私有数据成员,下面的语句是错误的:
stud1.num=10101;//num是私有数据成员,不能被外界引用
在类外只能调用公用的成员函数。在一个类中应当至少有一个公用的成员函数,作为对外的接口,否则就无法对对象进行任何操作。
命名约定:
对于类名和成员函数名,采用 Pascal 拼写法,
如 IntroduceSelf(),而对于成员属性,采用骆驼拼写法,如 dateOfBirth。
实例化对象时,我们声明一个类型为相应类的变量。因此,对于对象名,我们采用前面
一直用于变量名的骆驼拼写法,如 firstMan。
该文章会更新,欢迎大家批评指正。
推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程
更多推荐
C++中使用句点运算符访问成员
发布评论