C++的头文件,源文件区别
来源:互联网 发布:淘宝秒杀自动答题软件 编辑:程序博客网 时间:2024/05/17 09:31
一、声明与定义的区分:
一个声明就是一个定义,除非 :
声明:引入名称
定义:引入实体
1.它声明了一个没有详细说明函数体的函数
2.它包含一个extern定义符且没有初始化函数或函数体
3.它是一个包含在一个类定义之内的静态类数据成员的声明,它必须在最终程序的某处准确的定义一次
4.它是一个类名声明,如class test;
5.它是一个typedef声明。
一个声明就是一个定义,除非 :
声明:引入名称
定义:引入实体
1.它声明了一个没有详细说明函数体的函数
2.它包含一个extern定义符且没有初始化函数或函数体
3.它是一个包含在一个类定义之内的静态类数据成员的声明,它必须在最终程序的某处准确的定义一次
4.它是一个类名声明,如class test;
5.它是一个typedef声明。
言外之意:
1。类的声明也就是定义
2。同时赋初值的声明也就是定义,如int a=2;
3。类非静态数据成员的声明也就是定义???
4。类的所有成员函数的声明也就是定义
1。类的声明也就是定义
2。同时赋初值的声明也就是定义,如int a=2;
3。类非静态数据成员的声明也就是定义???
4。类的所有成员函数的声明也就是定义
一个定义就是一个声明,除非:
1.它定义的是一个静态数据成员
2.它定义了一个非内联成员函数
1.它定义的是一个静态数据成员
2.它定义了一个非内联成员函数
内部连接和外部连接:
编译时每个文件会被编译成一个含有必要信息的源文件(又叫编译单元),然后编译单元会联结成一个和族文件同名的.o文件,.o文件把不同的编译单元中产生的符号联系起来,构成一个可执行文件。有两种截然不同的链接:内部的和外部的,将这些编译单元联系起来。
内部连接:对这个定义的访问被局限在当前编译单元,其他编译单元无法访问。
外部连接:可被其他单元访问,因此名称在整个执行文件中必须唯一。
类的定义(同时也是声明),enum,struct,都是内部连接,内联函数,静态的非类成员数据也是
typedef声明的类型也是内联结。
编译时每个文件会被编译成一个含有必要信息的源文件(又叫编译单元),然后编译单元会联结成一个和族文件同名的.o文件,.o文件把不同的编译单元中产生的符号联系起来,构成一个可执行文件。有两种截然不同的链接:内部的和外部的,将这些编译单元联系起来。
内部连接:对这个定义的访问被局限在当前编译单元,其他编译单元无法访问。
外部连接:可被其他单元访问,因此名称在整个执行文件中必须唯一。
类的定义(同时也是声明),enum,struct,都是内部连接,内联函数,静态的非类成员数据也是
typedef声明的类型也是内联结。
非内联成员函数(包括静态成员)有外部连接,非内联函数,非静态自由函数(非类的成员函数)也是外连接。
声明只对当前编译单元有用,他们不会影响到.o文件,
.h文件,由于该文件会被其他.cpp文件包含,但由于声明只是对当前编译单元有效,是不会将符号引入.o文件,所以该文件不能含有任何外部连接的符号(数据成员和函数)的定义。一般情况下也不要包含内连接符号的定义。
综上所诉:
.h文件中能包含:
1。类成员数据的声明,但不能赋值
1。类成员数据的声明,但不能赋值
2.类静态数据成员的定义和赋值,但不建议,只是个声明就好。
3。类的成员函数的声明
4。非类成员函数的声明
3。类的成员函数的声明
4。非类成员函数的声明
5.常数的定义:如:const int a=5;
6.静态函数的定义
7.类的内联函数的定义
不能包含:
1. 所有非静态变量(不是类的数据成员)的声明
2。 默认命名空间声明不要放在头文件,using namespace std;等应放在.cpp中,在.h文件中使用std::string
- c语言笔记--头文件和源文件的区别
- C++的头文件,源文件区别
- 头文件和源文件的区别
- 头文件和源文件的区别
- 头文件和源文件的区别
- 头文件和源文件的区别
- C++头文件和源文件的区别
- Why C++: 源文件与头文件有什么区别
- C++:源文件与头文件有什么区别
- C++中头文件与源文件的区别
- 源文件与头文件的功能与区别
- C++-关于头文件和源文件的分别
- C语言中源文件和头文件的那些事
- C语言中源文件和头文件的那些事
- C语言中,头文件和源文件的关系
- C语言头文件和源文件的关系
- 位图的读取与保存 C语言 源文件+头文件
- C语言中,头文件和源文件的关系
- X字体
- 为什么很多C++程序不能运行?
- 电磁波简介
- test
- proc文件系统,网络参数详解
- C++的头文件,源文件区别
- test,just a test
- Eric的分页条小控件
- Eric的日期选择下拉列表小控件
- TSS描述符
- 计划(2006.08)
- 日志(2006.08)
- CSS_Classic_Original
- Thinking in C++ (1-6)