- 在C++ 中声明和定义要严格区分,不能在头文件里有定义。只能有声明。声明的方式如下
extern int a; // 用extern 声明变量
int max(int, int); // 函数原型 声明函数
//以及类和结构体的声明
- 一个c++文件就是一个编译单元(c也一样)
- 一个头文件中最好是只有一个类的声明。无论是C还是C++都不能include .c or .cpp文件,只能是include头文件(C++中也可以include不带后缀的文件比如iostream)头文件中只能有声明,不能有定义,头文件中要使用标准头文件结构(#ifndef...#define....#endif 这些)避免重复声明。
- 在类中成员变量的声明不需要加extern。
class A
{
private:
int num; //这就是声明成员变量了,这个和全局变量声明不同,不需要加 extern
public:
int b;
void func();
}
// num的定义是在类的方法中使用的时候。因为声明是不分配内存的,编译器只是知道有这么个东西,但不知道在内存哪里。而定义就是告诉了编译器东西存在内存的哪里。
A::func() // 这是类的方法的定义
{
num = 6;
cout << num << endl;
}
void main()
{
A a; //创建了一个A的对象
a.func(); //调用了func方法
a.b = 9; // 成员变量b 是public,可以调用
cout << a.b << endl;
}
- 类中的方法(或者叫函数)是属于类的,不属于对象。