c++这个程序编译时候没有错误,执行的时候出错了,求指点

//A.h
#ifndef _A_H_
#define _A_H_
class A
{
public:
void show();
};
#endif
//B.h
#ifndef _B_H_
#define _B_H_
#include"A.h"
class B: public A
{
public:
void show();
};
#endif
//X.h
#ifndef _X_H_
#define _X_H_
#include"A.H"
class X
{
public:
void abc(A *);
};
#endif
//X.cpp
#include"X.h"
void X::abc (A *p)
{
p->show();
}
//try.cpp
#include"X.h"
#include"B.h"
void main()
{
X X1;
A A1;
B B1;
X1.abc(&A1);
X1.abc(&B1);
}
X.OBJ : error LNK2001: unresolved external symbol "public: void __thiscall A::show(void)" (?show@A@@QAEXXZ)
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/1.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

首先更正一点,这是链接报错,不是运行出错
错误在于类A和类B的Show成员函数只有声明,没有实现
温馨提示:内容为网友见解,仅供参考
无其他回答

程序没有问题为什么执行 cl.exe 时出错!~~~求高手指点!!!
因为你的程序里面有错误。cl.exe是微软的C++编译器。如果你的程序中有错误,编译不通过,就会出错了。不是你下载的程序错了,是你编写的代码错了。第11行把全角逗号改成半角逗号:MessageBox(NULL,TEXT("我哪里错了?"),TEXT("提问"),MB_YESNO|MB_ICONQUESTION);

visual c++ 6.0 无法执行 程序编号后编译和组建都正常,但一点击执行...
调试编译器会生成好后,DEBUG文件夹,文件夹中的EXE文件,这是你想要的运行,将可以双击它。debug文件夹中,你可能会释??放产生的,它会释放EXE文件的文件夹,。

c语言编程中出现"执行 cl.exe 时出错" 跪求指点!!!
一: “CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目 录 \\VC98\\Bin”下面,你可以到相应的路径下找到这个应用程序。因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工 具)”—>“Option(选择)”—>“Directories(目录)”重新设置“Excutable Fils、Include Files、Libr...

C++程序在VS2010下运行正确,直接运行Debug与Release的exe就错?求大神...
在VS2010下运行,默认是运行DEBUG的,能正常运行并不奇怪, 但是如果你单独把它拷贝出来运行,不一定能够正常工作, 因为在VS2010里面能够运行是因为编译器提供了很多系统变量以及临时变量给你的DEBUG去调用。 当然了,具体情况具体分析,没有看到代码,不能进一步分析。 追问: 请问您有空吗?...

c++程序无法运行 求指点!如果能跑出程序 追加50啊 湿兄~~
还是代码上的,你的代码有2处问题:1、stdlib库中abs()函数的参数要求为整型,你用的是浮点型,需要重新定义一个abs宏 define abs(a) = (a>0) ? a : (-a)2、这句for(int t=0;t<=3900;t=+300),是死循环(t=+300?),改为:for(int t=0;t<=3900;t+=300)...

关于C++输入cin的问题,下面的程序,如果输入的不合法,那就将陷入死循环...
当你在控制台输完数据敲回车后,输入的数据以及回车换行符被同时送到输入缓冲区,例如你输入的数据为a,然后回车,此时输入缓冲区中就有两个字符,一个是‘a’,一个是回车换行符‘\/n’,接着程序读取,由于类型不匹配,读取失败,并没有读走输入缓冲区中的数据,也就是说,此时输入缓冲区中还是‘...

c++ 不执行怎么回事啊
小伙子你安装的是什么C++呀。如果是visual C++ 6.0那么可能是他假死了。原因是程序中一些C特有的错误造成的。比如数组越界。这在编译时不会报错但是不能运行 还有如果是devC++那么肯定是你的程序错了哦。如果错误解决不了用devC++试试

用DEV C++ 这个软件运行时有一点小错误 不知哪错 求指点 多谢!
include写错了,atoi参数是字符串,不是字符,也错了。a数组下标范围是0-11,错用了超出范围的a[12].此外,循环体输出时还有逻辑错误。你是想输出0 1 2 3。。 。9 这些字符出现的次数么?在你的基础上修改了一下:include <stdio.h> include<stdlib.h> include<string.h> \/* include, 不是...

c++程序编译错误,求指点!
460行是变量定义的问题,num变量未定义,或者是作用域有问题 646行可能是大括号匹配的问题,或者是括号匹配问题,你往646行上面找

下面这个c++程序运行不出来啊,求大神指点,急!!!
int main(){ int a,b,c,i;a=1; \/\/1 不是完数 从2开始。i=1;while(a<=999) \/\/这里的分号去掉 { a++;c=0; \/\/每次都设置为0 i=1; \/\/每次的因子都是从1开始 do { b=a%i;if(b==0)c+=i;i++;}while(i!=a);if (c==a)cout<<a<<endl;} return 0;} ...

相似回答