C++的一个问题,关于结构体在类中先声明后定义出现的问题

代码如下classA{structPoint;public:A();};A::A(){Point(3,4);}structA::Point{public:intx,y;P... 代码如下
class A
{
struct Point;
public:
A();
};

A::A()
{
Point(3, 4);
}

struct A::Point
{
public:
int x, y;
Point(int a, int b)
{
x = a;
y = b;
}
~Point(){}
};

编译报错:error C2514: 'A::Point' : class has no constructors

在A中先声明了一个结构体Point,然后在后面给出定义(包含了构造函数和析构函数),为什么在A的构造函数中想构造这个结构体会说这个结构体没有构造函数呢?
展开
 我来答
snoopylie
推荐于2017-10-11 · TA获得超过1275个赞
知道小有建树答主
回答量:2396
采纳率:33%
帮助的人:822万
展开全部
class A
{
struct Point;
public:
A();
};

struct A::Point
{
public:
int x, y;
Point(int a, int b)
{
x = a;
y = b;
}
~Point(){}
};

A::A()
{
Point(3, 4);
}

调换一下顺序就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式