c++问题 请高手帮忙解决一下这个问题

源代码:#include<iostream>#include"math.h"usingnamespacestd;classline;classpoint{private:... 源代码:
#include<iostream>
#include"math.h"
using namespace std;
class line;
class point
{
private:
int x;int y;
public:
point(int a,int b)
{
x=a;y=b;
}
void print(line &p)
{
cout<<x<<y<<endl;
cout<<p.x1<<p.x2<<p.y1<<p.y2<<endl;
}
};

class line
{
private:
int x1;int y1;
int x2;int y2;
public:
line(int a,int b,int c,int d)
{
x1=a;x2=b;
y1=c;y2=d;
}
friend void point::print(line &);
};

void main()
{
point A(7,8);
line l(1,2,3,4);
A.print(l);
}

错误提示:

1>------ 已启动生成: 项目: 友元成员, 配置: Debug Win32 ------
1>正在编译...
1>友元成员.cpp
1>e:\案例\友元成员\友元成员.cpp(17) : error C2027: 使用了未定义类型“line”
1> e:\案例\友元成员\友元成员.cpp(4) : 参见“line”的声明
1>e:\案例\友元成员\友元成员.cpp(17) : error C2228: “.x1”的左边必须有类/结构/联合
1>e:\案例\友元成员\友元成员.cpp(17) : error C2027: 使用了未定义类型“line”
1> e:\案例\友元成员\友元成员.cpp(4) : 参见“line”的声明
1>e:\案例\友元成员\友元成员.cpp(17) : error C2228: “.x2”的左边必须有类/结构/联合
1>e:\案例\友元成员\友元成员.cpp(17) : error C2027: 使用了未定义类型“line”
1> e:\案例\友元成员\友元成员.cpp(4) : 参见“line”的声明
1>e:\案例\友元成员\友元成员.cpp(17) : error C2228: “.y1”的左边必须有类/结构/联合
1>e:\案例\友元成员\友元成员.cpp(17) : error C2027: 使用了未定义类型“line”
1> e:\案例\友元成员\友元成员.cpp(4) : 参见“line”的声明
1>e:\案例\友元成员\友元成员.cpp(17) : error C2228: “.y2”的左边必须有类/结构/联合
1>生成日志保存在“file://e:\案例\友元成员\Debug\BuildLog.htm”
1>友元成员 - 8 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

请高手们指点
展开
 我来答
jhx1008
2012-01-04 · TA获得超过617个赞
知道小有建树答主
回答量:336
采纳率:0%
帮助的人:322万
展开全部
1.请把你的line的定义放到point前面,虽然你在class point前面声明了class line,但在point里根本不知道line内部情况,class line只是个声明,不是定义,只告诉了point有line这个类,具体line这个类怎么定义point一无所知,而你在print函数中用了line具体的成员。。。
2.文件名和路径中最好不要包含中文。。
更多追问追答
追问
那怎样才让point类知道line的定义呢,写在它的前面吗?
追答
把class line整个类的定义放到class point前面试试
shenaodong
2012-01-04 · TA获得超过960个赞
知道小有建树答主
回答量:868
采纳率:0%
帮助的人:790万
展开全部
void print(line &p)改用指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式