c++ - C++调用函数的不同方式

标签 c++ function

我知道这是一个非常基本的问题,但经过几次谷歌搜索并点击多个链接后,我仍然找不到答案。

我的问题是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/

相关文章:

c++ - 错误调用函数无法转换类型

c++ - ios::app 和用于输入的 fstream 之间的交互

javascript - 当 javascript 函数用作对象的基础时的变量 -

function - C->函数库中面向方面的编程?

javascript - 如果条件从未满足,因此简单条形图中的条形始终为蓝色,而我希望它们对于低于特定数字的值为红色

c++ - 将复制返回的值分配给引用

function - Flex&Bison : define main function in a separate file

C++ - 在没有加密大小的情况下解密

c++ - printf() 在源代码中不起作用?

c++ - 头文件中的 `static` , `extern` , `const`