用指针调用类函数问题

时间:2013-05-08 01:51:05

标签: c++ pointers syntax

我的代码出现此错误。

错误C2228:'。showHand'的左边必须有class / struct / union 1>类型是'PokerHand *'你打算使用' - >'代替?

这是我的主要功能中获得错误的部分。错误的事情是我称之为showHand()

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

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

2 个答案:

答案 0 :(得分:4)

这一行:

Dog.showHand();

应该是:

Dog->showHand();

由于它是pointer,您无法使用.来访问成员,因此您必须使用->

答案 1 :(得分:1)

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

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

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

Dog->showHand();

与此代码相同:

(*Dog).showHand();

因为*运算符首先取消引用指针以获取对象实例的访问权限,然后.运算符才能访问该对象的成员。