问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2023-09-15 10:33

我来回答

4个回答

热心网友 时间:2023-10-17 17:33

/*在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中,看起来比较整齐,读起来方便,也很有利于模块化和源代码的重用。

热心网友 时间:2023-10-17 17:33

一般为了安全性,只在头文件中进行声明,而不定义,在其它文件中进行定义。给你个例子。因为我学了才一年,所以没法给你说过多的理论,给你两个例子你好好体会把。
简单例子实现输出两个数据。
/*在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;
}

热心网友 时间:2023-10-17 17:34

可以在源文件中添加另一个源文件吗?好像只能添加头文件哦,在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()

热心网友 时间:2023-10-17 17:34

在头文件(如test.h)中定义函数,在同名源文件(如test.cpp)中写函数的实现,再写增加一个主函数源文件main.cpp,同名源文件与主函数源文件中包含头文件,头文件中加入宏定义:
#ifndef TEST_H__
#define TEST_H__

#endif //TEST_H__
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
空调加氟时要注意什么? 电脑安装了pr兼容性pr显示系统兼容性报告 带你了解——赫伯罗特 一千克面粉三十元一克面粉多少钱 大米2元500克面粉3元500克 2千克大米和和1500克面粉多少钱?_百度... ...面粉每千克多少元.大米25千克4.5元一千克面粉2 买8000克面粉需要32元,每千克面粉多少钱 500克面粉2元钱1千克面粉多少钱,怎么练式? 软棕和硬棕哪个好 amd rx6800m相当于nvidia什么水平? 我写了一个C的程序,现在要调用一个函数,而该函数在一个头文件...5 83版《霍元甲》的扮演者现在都在哪?9 河北崖柏集市主要是在哪里20 卖30十多的崖柏手把件是崖柏吗6 我国哪里的崖柏树最多呢?16 全国各地都有哪儿批发崖柏毛料?详细点2 那里有批发崖柏手把件的 中国最大的崖柏原料交易市场在哪了20 全国最大崖柏交易市场64 全国最大的崖柏批发市场在哪里113 五一从石家庄到山东的泰山;岱庙;曲阜;济南;青岛五个地方,自助游的详细... 山东必玩景点大集合,玩遍济南、青岛、泰山、威海等城市旅游胜地_百度... 想去山东自助旅游,只有5天时间,麻烦哪位推荐一个经典路线?谢谢!_百度知... ...青岛、济南这个几个地方,我只有五天时间,麻烦帮我安排一下旅游线路... ...TC=5Q&#x00B2;+20Q+1000.产品的需求函数为:Q=140-P, i77700hq显卡1070144HZ16G内存512给+1T 存储7599元贵吗? i7-7700hq,8G内存,128g固态+1T硬盘,1050ti4g独显大约多少钱 ...Qs=-10 P,商品价格从5元变为10元的需求价格弹性是? 包皮水肿吃什么药99 包皮龟头炎会有什么症状1 我这个月月经推迟10天才来,而且这几天肚子疼不舒服是怎么回事... 口腔内有金属假牙做脑部核磁共振会有危害不5 哪里有免费看83版的《霍元甲》? C语言中。如果编写了一个函数,想在不同源文件中调用。5 C语言中定义头文件和函数调用有什么区别和联系?12 电脑连接上网络,不能上网,360修复后让用lsp修复 怎样使厚嘴唇变薄?1 关于c语言头文件的问题:头文件中声明函数,然后在C文件中写函...16 月经推迟十天了这几天还伴有腹痛请问这是什么原因6 我在codeblocks里写了一个C的程序,现在要调用一个函... 有谁晓得是不是做脑部核磁共振时,口腔里安装的假牙类比如烤瓷牙...1 c语言中如何在一个函数中调用在另个文件中定义的函数6 电脑打不开网页用360修复后两项出现问题建议用LSP该怎么弄 固定假牙对头部核磁共振有影响么13 姨妈推迟了10天,可是小腹痛总感觉要来了,怎么回事?10 求视频:83版《大侠霍元甲》演员表39 我用了360安全卫士LSP的修复后,浏览器网页打不开怎么办 怎样使厚嘴唇变薄1 如何根据任意一张图片,查看在p站的作者?6 月经推迟10多天右下侧小腹疼是怎么回事1