2 wyn0222 wyn0222 于 2016.04.09 21:05 提问

c++类的组合 编译正确 组建错误

#include
#include
using namespace std;
class point
{
public:
void set();//设置原点坐标;;
void move();//移动距离;
void l(int x,int y);//移动后坐标及两点间距离;
int getx();
int gety();
private:
int x,y;
};
class line
{
public:
line(point a,point b);
void xl();//直线的斜率;
private:
point p1,p2;
};
main()
{
class point a,b;
class line l1(point a,point b);
cout<<"请设置直线上两点坐标:";
a.set();
b.set();
l1(a,b);
}
void point::set()
{
cin>>x;
cin>>y;
cout<<"点坐标为:("< }
void point::move()
{
int m,n;
cin>>m;
cin>>n;
x=x+m;
y=y+n;
cout<<"移动后坐标为:("<<x<<","<<y<<")."<<endl;
cout<<"两点间距离为:"<<sqrt(m*m+n*n)<<endl;
}
int point::getx()
{
return x;
}
int point::gety()
{
return y;
}
line::line(point a,point b):p1(a),p2(b)
{
double k;
int m,n,p,q;
p1=a;
p2=b;
m=p1.getx();
n=p1.gety();
p=p2.getx();
q=p2.gety();
k=(n-q)/(m-p);
cout<<"直线的斜率为:"<<k<<endl;
}

组建错误:
unresolved external symbol "class line __cdecl l1(class point,class point)" (?l1@@YA?AVline@@Vpoint@@0@Z)

1个回答

theColdOne
theColdOne   2016.04.09 21:24
已采纳

main函数里
l1(a,b);
这句是错误的,看看书上关于类的构造函数的介绍

wyn0222
wyn0222 嗯,是构造函数错了,看书知道了,谢谢
2 年多之前 回复
wyn0222
wyn0222 书上没有类的组合相关的,只有类的一些基础;组合是老师上课讲的,搞不懂......
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
下面有关继承、多态、组合的描述,说法错误的是?
下面有关继承、多态、组合的描述,说法错误的是?A、封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏 B、继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展 C、隐藏是指派生类中的函数把基类中相同名字的函数屏蔽掉了 D、覆盖是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同答案: BC解析: A
java 小练习
1.为了让同一个包内其它类有权访问一个类的成员,以下哪个访问控制符最适合? A.public B.private C.protected D.没有访问控制符 D 2.下面哪个方法声明可以让同一包的成员访问,而且不需要类的实例? A.abstract public void methoda(); B.public abstract double methoda(); C.stati
为什么在VC6.0的编译器 编译后 总是出现这样一个错误Error spawning cl.exe .
方法1: 启动VC时不要用图形界面,通过在命令提示符下输入:Msdev /useenv运行(注意啦/前面有个空格).它会强制使系统环境变量全高设置成正确值.而且,只需要使用一次这样的方式运行VC,以后再次通过双击图标的方式启动也不会有问题。 方法2: 使用你的V
不能编译的错误
在控制台执行java.exe的时候多次出现如下错误:Registry key Software/JavaSoft/Java Runtime Environment/CurrentVersionhas value 1.4, but 1.3 is required.Error: could not find java.dllError: could not find Java 2 Ru
COM(组件对象模型)
COM简介 (COM),是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言,平台无
C语言常见编译错误与执行错误
编写fasync_jni应用程序放在Tiny210开发板上跑会出现如下错误: 然后编写一个最简单的hello world程序放在Tiny210开发板上跑也会出现类似这样的错误:hello: line 1: syntax error: unexpected word (expecting “)”)解决办法:加上-static选项,arm-linux-gcc hello.c –static –o he
正常的C语言代码用gcc编译失败的原因
最近在在用codeblock 用C语言完成数据结构的上机习题,发现有一些常见的代码在无法用gcc编译成功,但是在vc6.0 却可以编译通过,原因是使用了不同的编译器的缘故。   例如使用了引用类型的函数参数,以及2重指针,用gcc均无法编译通过,但是用C++ 的编译器是可以正常执行的 图一    图二 两张图片,打方框的地方,在gcc下都没有编译过去,但
Java 习题5 参考答案及解析(1)
1.问答题 (1)子类可以有多个父类吗? (2)java.lang包中的Object类是所有其他类的祖先吗? (3)如果子类和父类不在同一个包中,子类是否继承父类的友好成员? (4)子类怎样隐藏继承的成员变量? (5)子类重写方法的规则是怎样的?重写方法的目的是什么? (6)父类的final方法可以被子类重写吗? (7)什么类中可以有abstract方法? (8)对象的上转型对象有
Java源文件编译出错:类文件包含错误的类 请删除该文件或确保文件位于正确的类路径子目录中
做了一下这样的测试:通过在环境变量中配置classpath使得不同路径下的类可以被引入。 D:\a\Test.java文件: import com.Dog public class Test{ public static void main(String[] args) { Dog d = new Dog(); System.out.println(d
eclipse c++ 代码编译正常但有很多错误提示
代码编译和运行都正常, 但源码编辑框里有大量的错误提示,   所有方法或类的链接都失效了. 解决方法:  windows -> preferences -> c/c++ ->indexer , 把index 开头的选项都勾上, 然后apply, 有可能你已经都勾上了, 那就先取消一个再勾上.   apply以后会等一会儿,等的时间取决于代码量.  进度跑完后就可以了.