我知道这是一个非常基本的问题,但经过几次谷歌搜索并点击多个链接后,我仍然找不到答案。
我的问题是C++语言中函数调用中的“.”和“->”有什么区别?
例如,我有一个包含 2 种不同数据结构的程序。 信号量aaa; 列出 bbb;
要在信号量上使用函数,我必须执行 aaa.P(); 但是在 List 上,我必须执行 List->append(object);
我不太明白为什么 Semaphore 使用 .P() 而 List 使用 ->append() 当信号量只是一个包含整数和列表的数据结构时。
最佳答案
当您使用对象本身或对对象的引用访问成员时,请使用 .
运算符。
struct Foo
{
void bar() {}
};
Foo foo;
Foo& fooref = foo;
foo.bar();
fooref.bar();
当您通过指向对象的指针访问成员时,请使用 ->
运算符。继续上面的例子
Foo *fooptr = &foo;
fooptr->bar();
(*fooptr).bar(); // same as preceding line
关于c++ - C++调用函数的不同方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883838/