【发布时间】:2016-04-19 07:05:39
【问题描述】:
我正在尝试对 C++ 中的类继承进行练习。主要思想是我有一个点类(通过2个坐标定义一个点)并且我有不同的形状(例如矩形,正方形,三角形......等)
我的 point 类有一些 getter,称为 getX() 和 getY(),它们都返回双精度值。
在我所有的形状类(矩形、正方形、三角形)中,我都有一个打印方法,可以将它们的类成员打印到控制台。在该方法中,我需要获取 Point 实例的 x 和 y。问题是我这样做时会出现以下编译错误:
error C2228: left of '.getX' must have class/struct/union
这里有一些包含我其余代码的粘贴箱:
点类头:http://pastebin.com/vA29dTkE
点类cpp文件:http://pastebin.com/E8GKrsHT
矩形类头:http://pastebin.com/pXNXX18q
矩形类cpp文件:http://pastebin.com/R09vgfdb
问题出现在矩形类 cpp 文件的第 18 行和第 19 行。 提前感谢您的帮助:)
【问题讨论】:
-
pastebin 链接不会永远存在 - StackOverflow 要求您直接在问题中发布最少、完整的代码,因此它和任何答案对以后的读者仍然可能有用。
-
您好!如果我没看错,当你使用
point origin(double, double);时,你会创建一个名为 origin 的函数,而不是一个名为 origin 的点。您必须写点origin;以在您的多边形中创建一个名为origin 的变量。然后在您的构造函数中,调用变量原点的构造函数。在这里,当您调用origin.getX();时,您调用的是函数而不是点上的getX(),因此它不起作用。 -
你需要发一个minimal reproducible example。
标签: c++ class oop pointers getter