如何在C++头文件中定义函数,然后在源文件中使用
/*在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中,看起来比较整齐,读起来方便,也很有利于模块化和源代码的重用。
简单例子实现输出两个数据。
/*在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;
}
然后你在在主程序中的源文件中使用#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()
#ifndef TEST_H__
#define TEST_H__
#endif //TEST_H__