C++ 中 如何 访问类成员函数的机制,有时候看见 Dog dog; dog.getName();

2024年12月04日 22:47
有4个网友回答
网友(1):

. 是成员操作符,左值必须是一个已有的结构或类对象如
Dog dog;//已有对象
dog.getName()就是调用这个对象的getName成员
->是指向成员操作符,左值通常是一个已有的该结构或类类型的指针。(->并不要求左值指针以分配内存,但基本上都是要分配的,为了内存读写。)如
Dog * p_dog = (Dog *)malloc (sizeof(Dog));
p_dog -> getName()即Dog类型指针指向其getName成员

每一个类型对象都存在一个隐含this指针,即标示它自己。通常不显式指定(即通常不用写成this -> getName()而直接写getName()),多数用在成员函数返回该对象本身时用到。

网友(2):

如果一个Dog类的变量 比如叫dog 那么访问其中的成员函数 就是用"." 如dog.getName()

如果是一个指向Dog类的指针 比如 Dog *dog = new Dog(); 那么访问成员函数就是dog->getName()

"->"其实就是"."+"."的意思 比如上面那句 就是 (*dog).getName();

this是指向当前这个变量的指针。你在写一个类的时候,比如要返回一个指向自己的指针
就是return this;

有不懂的再问吧

网友(3):

指针类型用的是 -> ,this是一个隐含指针!对象的名字来访问的话就用 . ,如果是*this的话还用 . 。

网友(4):

那个例子貌似还是我写的,cat dog什么的

this 是指针,指针访问用的是 ->
.是对象运算符,就是实例化后的对象去访问类成员函数或类成员变量的.