作为初学者,我正在自学C++,在嵌套类方面遇到了一些问题。我试图定义一个类来表示由四个顶点(定义一个名为vertices的点)组成的四边形,该类由一个表示二维点的嵌套类对象表示。我只使用一个点来测试我的答案。我的答案是:
#include <iostream>
#include <assert.h>
using namespace std;
class quadrangle
{
public:
class vertex
{
private:
public:
int x, y;
friend class quadrangle;
vertex();
vertex(int a, int b);
vertex(const vertex & old);
};
vertex p1;
int a, b;
friend class vertex;
quadrangle();
quadrangle(vertex(int a, int b)) : p1(a,b) {};
quadrangle(const quadrangle & old);
void draw();
};
quadrangle::vertex::vertex()
{
x = 0; y = 0;
}
quadrangle::vertex::vertex(int a, int b)
{
x = a; y = b;
}
void quadrangle::draw()
{
cout << "p1: (" << p1.x << "," << p1.y << ") " << endl;
}
quadrangle::quadrangle()
{
p1.x = 0; p1.y = 0;
}
int main()
{
quadrangle q1(quadrangle::vertex(2,3));
q1.draw();
}
我遇到了一个问题:
错误:没有符合调用“quadrangle::quadrangle(quadrangle::vertex)”的函数
我已经卡了整个下午了。有人能解释一下我的代码哪里出错了吗?我知道我的构造函数有问题,但是我就是无法修复它...
using namespace std;
这行代码。 :) - Quentinvertex
是quadrangle
的嵌套类?例如,triangle
类是否定义了不同的顶点? - VolkerK