c++类定义和类实现
预备知识:
c++中我们cpp文件和.h文件的区别是,cpp文件是需要编译的文件,成为一个独立的编译单元,而h文件从来是不需要编译,只是用于预处理。
通常我们在cpp文件中,完成函数的实现,然后在h中则是对于函数的声明,由于默认情况下,全局变量和全局函数存储类型都是extern类型的,所以我们不需要显示的使用extern
这样,我们其他的cpp文件,只要#include .h文件,则在cpp中实现的函数,就能在其他cpp中使用,因为我们已经用.h文件,完成了extern函数声明的操作。
c++类的定义,其实就是定义一个类型。
class A{
public:
void fun(int n);
int fun1(void);
public:
int num;
};
其实就是定义了一种类型。和我们通常所说的定义不一样。
类的定义,是不能重复定义的,在同一个编译单元中,只能定义类一次。如果重复定义,会出错。 同时类声明和类定义都是内部链接。只是为当前编译单元所用。
因此,把类的定义,放在.h文件中,类的实现放在专门的cpp中。这样包含.h的其他cpp,就可以使用cpp中实现的函数。。
同时注意:类的实现cpp文件的编译,必须依赖于类的定义文件.h,所以我们在类实现文件cpp中必须#include< ........h>,用于编译,否则会出错。这是不同于普通的函数。
//student.h (这是头文件,在此文件中进行类的声明)
class Student //类声明
{ public:
void display( );
private:
int num;
char name[20];
char sex;
//student.cpp //在此文件中进行函数的定义
#include <iostream>
#include ″student.h″
void Student∷display( )
{cout<<″num:″<<num<<endl;
cout<<″name:″<<name<<endl;
cout<<″sex:″<<sex<<endl;
//main.cpp 主函数模块
#include <iostream>
#include ″student.h″