请教简单的C++多文件连接问题(请针对问题对答,谢谢!)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教简单的C++多文件连接问题(请针对问题对答,谢谢!)相关的知识,希望对你有一定的参考价值。

//文件1是头文件
int Fabricate(int,int);
int Multi(int,int);

//文件2放一个函数Fabricate
int Fabricate(int m,int n)

return Multi(m,m-n+1)/Multi(n,1);


//文件3放一个函数Multi
int Multi(int m,int n)

int i,s=1;
for(i=m;i>=n;i--)
s*=i;
return s;


//文件4放main
#include<iostream.h>
#include"myheadfile.h"
using namespace std;
void main()

int m,n;
cout<<"请输入m";
cin>>m;cout<<endl;
cout<<"请输入n";
cin>>n;
cout<<endl<<"组合数为:"<<Fabricate(m,n);


我将四个文件的内容放在一个文件里编译成功,可是分成多个文件放在一个工程里连接时出现错误:

d:\program files\vc98\myprojects\123\fabricate.cpp(3):error C2065: 'Multi' : undeclared identifier

错误指向return Multi(m,m-n+1)/Multi(n,1); 这一行

请问是怎么回事?
谢谢!
------------------------------------------------------
在文件2中加了#include"myheadfile.h" 后反而出现两个错误:

Linking...

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16

Debug/123.exe : fatal error LNK1120: 1 unresolved externals

Error executing link.exe.

是怎么回事呢,真搞不懂

文件2和文件3需要包含文件1。其实头文件的作用就是声明。从理论上讲,文件3不需要包含文件1,但包含进来是一个习惯写法。
至于选了win32 Application的话,在Project -> Setting -> C++ -> Project Option中找到"_WINDOWS",删掉,或者改成"_CONSOLE"。
参考技术A 你需要在文件2中也加入一行
#include"myheadfile.h"
参考技术B \fabricate.cpp里面没有包含头文件,把头文件加进去 #include"myheadfile.h" 还要声明

别跟我说你选了win32 Application? 不然怎么会有winmain做入口?
参考技术C 哇‘‘看不懂也 ‘但还是要冒个泡

以上是关于请教简单的C++多文件连接问题(请针对问题对答,谢谢!)的主要内容,如果未能解决你的问题,请参考以下文章

请教EPLan 端子问题

在线等 连接数据库出问题 请教C++高手 (30)分

各位大侠,请教个oracle问题,执行一段代码出现错误,希望各位给出解决办法,谢谢谢!

请教一个简单的C与C++的命名规则问题

剑指Offer对答如流系列 - 翻转字符串

arcgis高手请教!!关于shp文件的用法。