调用带指针的类函数有问题

Calling a class function with pointers issue

本文关键字:类函数 有问题 指针 调用      更新时间:2023-10-16

我得到这个错误与我的代码。

错误C2228: left of '。showHand必须有类/结构/联合1>类型是'PokerHand *',您是否打算使用'->'代替?

这是得到错误的主函数的一部分。错误是我调用showHand()

PokerHand* Dog = Wood.dealN(5);
Dog.showHand();

我猜我正在用指针做一些错误的事情,这就是为什么错误告诉我使用->,但我不确定我甚至会把它放在我的代码中。我只需要能够在我的主文件中调用showHand()函数,据我所知,代码的其他部分都在工作。

这一行:

Dog.showHand();
应:

Dog->showHand();

因为它是pointer,你不能使用.来访问成员,你必须使用->

当左侧是直接对象实例时使用.操作符

当左侧是指向对象实例的指针时,使用->操作符。

->操作符是*.操作符的组合。换句话说,这段代码:

Dog->showHand();

与以下代码相同:

(*Dog).showHand();

因为*操作符首先对指针解引用以获得对对象实例的访问权,然后.操作符才能访问对象的成员。