C++;getter()的左边必须有class/struct/union 我试图在C++中做一个关于类继承的练习。主要思想是我有一个点类(用2个坐标定义一个点),我有不同的形状(比如矩形、正方形、三角形等等)

C++;getter()的左边必须有class/struct/union 我试图在C++中做一个关于类继承的练习。主要思想是我有一个点类(用2个坐标定义一个点),我有不同的形状(比如矩形、正方形、三角形等等),c++,class,oop,pointers,getter,C++,Class,Oop,Pointers,Getter,我的point类有一些名为getX()和getY()的getter,它们都返回双值 在我所有的形状类(矩形、正方形、三角形)中,我都有一个print方法,可以将它们的类成员打印到控制台。在这个方法中,我需要得到点实例的x和y。问题是这样做时会出现以下编译错误: error C2228: left of '.getX' must have class/struct/union 下面是一些粘贴箱,其中包含我的其余代码: 点类标题: 点类cpp文件: 矩形类标题: 矩形类cpp文件: 问题发生在矩形

我的point类有一些名为getX()和getY()的getter,它们都返回双值

在我所有的形状类(矩形、正方形、三角形)中,我都有一个print方法,可以将它们的类成员打印到控制台。在这个方法中,我需要得到点实例的x和y。问题是这样做时会出现以下编译错误:

error C2228: left of '.getX' must have class/struct/union
下面是一些粘贴箱,其中包含我的其余代码:

点类标题:

点类cpp文件:

矩形类标题:

矩形类cpp文件:

问题发生在矩形类cpp文件的第18行和第19行。 感谢您提前提供的帮助:)

是一个需要两个双精度的函数,因此您必须像这样调用它:

double rectangle::draw()
{
    std::cout << "Rectangle membembers:\n";
    //x = this->origin.getX();
    std::cout << this->width;
    std::cout << this->height;
    std::cout << this->origin(0, 0).getX(); // here
    std::cout << this->origin(0, 0).getY(); // here
}

pastebin链接不会永远持续-StackOverflow要求您直接在问题中发布最小、完整的代码,因此它和任何答案都可能对以后的读者有用。您好!如果我读得好,当你使用
点原点(double,double)创建名为origin的函数,而不是名为origin的点。必须写入点
原点
在多边形中创建名为origin的变量。然后在构造函数中,调用变量原点上点的构造函数。在这里,当您调用
origin.getX()时
你在函数上调用
getX()
,而不是在点上调用,所以它不起作用。你需要发布一个。我很确定他不希望origin是一个函数,而是一个point类型的变量。(这里函数的原点在哪里?)
double rectangle::draw()
{
    std::cout << "Rectangle membembers:\n";
    //x = this->origin.getX();
    std::cout << this->width;
    std::cout << this->height;
    std::cout << this->origin(0, 0).getX(); // here
    std::cout << this->origin(0, 0).getY(); // here
}
class rectangle : polygon
{
private:
    point origin;
};

rectangle::rectangle(double x, double y, double width, double height)
 : origin(x, y) {
    this->width = width;
    this->height= height;
}