我的代码出现此错误。
错误C2228:'。showHand'的左边必须有class / struct / union 1>类型是'PokerHand *'你打算使用' - >'代替?
这是我的主要功能中获得错误的部分。错误的事情是我称之为showHand()
的那个PokerHand* Dog = Wood.dealN(5);
Dog.showHand();
我猜我正在做一些错误的指针,这就是错误告诉我使用->
的原因,但是我不知道我会把它放在我的代码中。我只需要能够在我的主文件中调用showHand()
函数,据我所知,代码的其他部分都在工作。
答案 0 :(得分:4)
这一行:
Dog.showHand();
应该是:
Dog->showHand();
由于它是pointer
,您无法使用.
来访问成员,因此您必须使用->
。
答案 1 :(得分:1)
当左侧是直接对象实例时,请使用.
运算符。
当左侧是指向对象实例的指针时,请使用->
运算符。
->
运算符是*
和.
运算符的组合。换句话说,这段代码:
Dog->showHand();
与此代码相同:
(*Dog).showHand();
因为*
运算符首先取消引用指针以获取对象实例的访问权限,然后.
运算符才能访问该对象的成员。