Talk is cheap, show me the code.
一般变量定义时如果进行了初始化就不能使用extern来修饰,否则编译会报错;file1中常量定义时必须初始化,如果要在另一个文件file2中声明引用这个常量时则在文件file1中必须使用extern修饰。
extern int a = 1; //错误
//file1.c
extern const int a = 1;
//file2.c
extern const int a; //正确//file1.c
const int a =1;
//file2.c
extern const int a; //错误引用只是一个别名,引用的改变也会导致原变量的改变。非const引用必须指向对应类型的变量,不能指向常量或者字面值;const引用可以指向对应类型的常量或字面值,或对应类型的变量。
枚举类型Enumeration是一系列同类型的整数常量构成,必须是整数常量,不给初值则默认从0计数赋值。
enum season {spring, summer, autumn, winter};
类的定义的反花括号后必须要有分号!
class Season {};
C++中class与struct的区别仅仅在于默认的成员权限不同,class默认成员权限为private,而struct默认成员权限为public;注意C++中的struct与C中的struct完全不一样,C++中的struct基本与class完全一样的用法,包括可以声明函数等等,但是C中的struct是不能的。
静态类型语言是指在使用变量前必须先进行声明的语言,通常需要编译,比如C/C++/Java/C#等等;动态类型语言是指在使用前不必先进行变量声明,在使用时根据赋予的值进行类型判断,比如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等;
头文件中应该尽量少放内容,通常只放声明、右值为字面量的常量或者定义类(但类函数的实现通常不放在头文件中),因为每次#include相当于都把头文件中的内容合并到新的文件中