如何在C++头文件中定义函数,然后在源文件中使用

 我来答
大野瘦子
高粉答主

2018-12-13 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.5万
展开全部

/*在text。h头文件中进行声明*/

#include<iostream>

using namespace std;

void display(int,int);/*使用该函数来实现输出*/

/*在texxt。cpp中进行定义,注意第一行,很重要因为不是c++标准库中的头文件,所以不能用<>,而要用""括起头文件*/

#include "text.h"

void display(int x,int y)

{

cout<<"A="<<x<<"B="<<y<<endl;

}

/*在主函数中进行调用函数*/

#include "text.h"

int main()

{

int a,int b;

cout<<"please input a &b"<<endl;

cin>>a>>b;

display(a,b);

return 0;

}

扩展资料:

关于上述中一些关键词的注意事项

h叫做头文件,它是不能被编译的。“#include”叫做编译预处理指令,可以简单理解成,在1.cpp中的#include"1.h"指令把1.h中的代码在编译前添加到了1.cpp的头部。每个.cpp文件会被编译,生成一个.obj文件,然后所有的.obj文件链接起来你的可执行程序就算生成了。

你要在.h文件中严格区分声明语句和定义语句,好的习惯是,头文件中应只处理常量、变量、函数以及类等等等等的声明,变量的定义和函数的实现等等等等都应该在源文件.cpp中进行。

至于.h和.cpp具有同样的主文件名的情况呢,对编译器来讲是没有什么意义的,编译器不会去匹配二者的主文件名,只认#include等语句。

但是这样写是一种约定俗成的编程风格,一个类的名字作为其头文件和源文件的主文件名比如Class1.h和Class1.cpp,这个类的声明在Class1.h中,实现在Class1.cpp中,看起来比较整齐,读起来方便,也很有利于模块化和源代码的重用。

bluefalcon2006
2011-05-17 · TA获得超过114个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:78万
展开全部
一般为了安全性,只在头文件中进行声明,而不定义,在其它文件中进行定义。给你个例子。因为我学了才一年,所以没法给你说过多的理论,给你两个例子你好好体会把。
简单例子实现输出两个数据。
/*在text。h头文件中进行声明*/
#include<iostream>
using namespace std;
void display(int,int);/*使用该函数来实现输出*/
/*在texxt。cpp中进行定义,注意第一行,很重要因为不是c++标准库中的头文件,所以不能用<>,而要用""括起头文件*/
#include "text.h"
void display(int x,int y)
{
cout<<"A="<<x<<"B="<<y<<endl;
}
/*在主函数中进行调用函数*/

#include "text.h"
int main()
{
int a,int b;
cout<<"please input a &b"<<endl;
cin>>a>>b;
display(a,b);
return 0;
}
下面这个例子实现类的头文件中声明,实现2*3矩阵的加法运算,并进行重载输入输出流。
在/*matrix。h中声明*/
#include <iostream.h>
class Matrix
{
private:
int a[2][3];
public:
Matrix operator + (Matrix&);/*重载加法运算符*/
friend istream& operator>>(istream&,Matrix&);/*重载输入流*/
friend ostream& operator<<(ostream&,Matrix&);/*重载输出流*/
};

/*在matrix。cpp中进行定义*/
#include "matrix.h"
Matrix Matrix::operator +(Matrix&w)
{
Matrix x;
for(int i=0;i<2;i++)
{for(int j=0;j<3;j++)
x.a[i][j]=this->a[i][j]+w.a[i][j];
}
return x;
}
istream& operator>>(istream& w,Matrix& y)
{
for(int i=0;i<2;i++)
{for(int j=0;j<3;j++)
cin>>y.a[i][j];
}
return w;
}
ostream& operator <<(ostream & x,Matrix& z)
{
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
cout<<z.a[i][j]<<" ";
cout<<endl;
}
return x;
}
/*主函数中调用*/
#include "matrix.h"
int main()
{
Matrix c,d,e;
cout<<"Please input the first matrix column!"<<endl;
cin>>d;
cout<<"Please input the second matrix column!"<<endl;
cin>>e;
cout<<"Here is the plus result of the two matrix columns!"<<endl;
c=d+e;
cout<<c;
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qhfbesc
2011-05-18 · TA获得超过858个赞
知道小有建树答主
回答量:1035
采纳率:33%
帮助的人:637万
展开全部
可以在源文件中添加另一个源文件吗?好像只能添加头文件哦,在C++中。你要程序运行正确,就要建一个头文件,然后在头文件中声明函数,当然函数体的定义一般建义是在另一个源文件中定义,在另一个源文件中定义头文件中声明的函数时应使用#include语句把头文件包含进来才行。
然后你在在主程序中的源文件中使用#include把头文件包含进来就没错了,下面举个例子给你看下。

//头文件hyong.h的内容如下

#ifndef HY //一般在头文件都都使用这种格式以防止头文件在同一文件中被包含两次。语名#ifndef hyong…..#endi表示仅当以前没有使用预处理器编译指令#define定义的名称hyong时才处理#ifndef….#endif之间的语句。
#define HY //在这里用define定义一个名字HY,以便在下次访问到该头文件时,使该名字已经被定义,从而让程序跳过#ifndef….#endif间的语句。
void g(); //在头文件中声明一个函数g();
#endif

//定义头文件中声明的函数的源文件hyong.cpp的内容如下

#include "stdafx.h" //注意:在VC++中所有的源文件中都要包含这条语句。
#include "hyong.h" //将头文件hyong.h包含进来,这里使用双引号,而不是引号,以便能更快地检查到该头文件中定义的名字
#include <iostream>
using namespace std;
void g() //定义头文件hyong.h中声明的函数g()

//主程序源文件ff.cpp的内容如下

#include "stdafx.h"
#include<iostream>
#include "hyong.h" //注意,主程序和hyong.cpp的文件中都包含了这个头文件。
using namespace std;
int main()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6144c36
2011-05-17 · 超过19用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:55.9万
展开全部
在头文件(如test.h)中定义函数,在同名源文件(如test.cpp)中写函数的实现,再写增加一个主函数源文件main.cpp,同名源文件与主函数源文件中包含头文件,头文件中加入宏定义:
#ifndef TEST_H__
#define TEST_H__

#endif //TEST_H__
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式