2013-05-08 96 views
0

我得到这个错误与我的代码。用指针调用类函数问题

错误C2228:'.showHand'的左边必须有class/struct/union 1> type是'PokerHand *'您打算使用' - >'吗?

这是我的主要功能是获取错误的一部分。错误的是我猜我做得不正确地使用指针这就是为什么错误是告诉我使用->的一个,我叫梭哈()

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

,但是我不知道在哪里我甚至会把它放在我的代码中。就我所知,代码的其他部分正在工作,我只需要能够在我的主文件中调用showHand()函数。

+0

狗是一个指针,所以你需要使用 - > ...通常如果intelesens不会继续使用错误的accesser。 – 2013-05-08 01:56:05

回答

4

这条线:

Dog.showHand(); 

应该是:

Dog->showHand(); 

既然是pointer不能使用.访问您必须使用->成员。

+0

啊。疑难杂症。谢谢。指针语法有很多问题! – user2105982 2013-05-08 01:54:17

+0

@ user2105982在这种情况下,您可能想了解一些关于指针的信息,因为如果您在使用它们时遇到问题,那么碰到与它们有关的问题(从崩溃泄漏到奇怪行为)非常容易。此外,由于这回答了您的问题,您应该点击旁边的灰色复选标记将其标记为正确答案! – JustSid 2013-05-08 01:56:16

+0

会做!但我必须等6分钟。 – user2105982 2013-05-08 01:59:30

1

当左侧是直接对象实例时,使用.运算符。

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

->运营商是*.运营商的组合。换句话说,这样的代码:

Dog->showHand(); 

是与此相同的代码:

(*Dog).showHand(); 

由于*操作者首先取消引用指针来访问对象实例,然后将.操作者可以访问对象的成员。