❶ c++中类中声明一个方法但未实现为什么能编译通过
#ifndefATEMPLE_H_
#defineATEMPLE_H_
classmTemp
{
public:
mTemp(int_x);
~mTemp(){};
voidshowData()const;
voidtoDo();
private:
intx;
};
#endif
//cpp
#include"stdafx.h"
#include"ATemple.h"
#include<iostream>
usingstd::cout;
mTemp::mTemp(int_x)
{
x=_x;
}
voidmTemp::showData()const
{
cout<<"data:"<<x<<" ";
}
//main.cpp
int_tmain(intargc,_TCHAR*argv[])
{
intss=10;
mTemp_m(ss);
_m.showData();
return0;
}
//这是允许的,譬如把operator=和constructor声明为私有但不实现,防止一些非法拷贝动作.
❷ C语言:我编了一个程序,为什么编译时没错,但运行时出现出现下列情况,求高手解答。
是output/sort/avgstd这几个函数没找到,你应该包含这几个函数所在的函数库。
1. 包含头文件
2. 编译的时候连接相应的链接库(可能不需要,包含头文件就可以了,编译器会自己找)
❸ 若一个函数声明了,但没用到,编译器在哪个阶段会报错
声明过后没用到是不会报错的,除非函数声明部分就有问题
❹ error LNK2001:unresolved external symbol "void __cdecl display(char * const)" (display@@YAXQAD@Z)
"void display(char str[M]) //你的dispaly拼写错
❺ 请问这个vc6报错是什么原因error C2447: missing function header (old-style formal list)
好几个问题:
一:
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow);
不该有分号。
二:
LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
只有声明,没有实现。
三:
如果你的程序建的是控制台而非win32程序,请如下修改设置(编译环境为VC6):
1.进入project->setting->c/c++, 在category中选择preprocessor,在processor definitions中删除_CONSOLE, 添加_WINDOWS
2.进入project->setting->Link, 在Project options中将 /subsystem:console改为/subsystem:windows.
3.保存设置,Rebuild All.
❻ 类的有成员函数的声明但是没有实现为什么可以编译
可以编译,但链接会出错,因为这不是编译要检查的问题
❼ C++中,只是声明一个函数而不定义,编译时会不会产生与之相对应的命令代码
不会产生代码,也不会出错。就算语言规定默认定义的构造函数如果不使用不会产生代码的。
❽ Visual Studio 编译失败
应该是因为只有声明没有实现,把实现写上去就没事了,你把鼠标移到波浪线上面就知道为什么错了
❾ 没有实体 只有声明的函数会怎么执行
外部函数extern时声明这个函数为外部函数,本文件不做定义,只调用,编译不会出错,但不能运行(没有函数实体)。。。。如果想有运行结果就必须将函数实体包含进来,所以文件包含和extern是配合使用的。。。文件包含只需要包含.h就是实体的头文件,但有些貌似不能识别头文件和c的关系,所以就只能包含.c文件。。。
也就是说外部函数extern只是个声明,他告诉编译器我用到了一个外部函数,但如果该文件没有将函数实体包含进来,编译器是找不到的,依然是不能运行的,所以extern只是个声明,并没有做任何事,只是这样是没用的。。。。
include是包含一个文件,就是类似于该文件复制到此处(只是说类似,其实是个查找路径,让编译器去该路径查找函数),就这么简单功能。。。。