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 个 ==========
请高手们指点 展开
#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 个 ==========
请高手们指点 展开
2个回答
展开全部
1.请把你的line的定义放到point前面,虽然你在class point前面声明了class line,但在point里根本不知道line内部情况,class line只是个声明,不是定义,只告诉了point有line这个类,具体line这个类怎么定义point一无所知,而你在print函数中用了line具体的成员。。。
2.文件名和路径中最好不要包含中文。。
2.文件名和路径中最好不要包含中文。。
更多追问追答
追问
那怎样才让point类知道line的定义呢,写在它的前面吗?
追答
把class line整个类的定义放到class point前面试试
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询