C++中变量和类的定义
2016-01-06 10:36
375 查看
一、 变量的声明和定义
在C++语言中,变量只能定义一次,在使用变量之前必须定义或声明变量。
1)变量的定义用于为变量分配存储空间,还可为变量指定初始值。
2)声明用于向程序表明变量的类型和名字。定义也是声明:当定义变量时我们声明了它的类型和名字。
可以通过使用extern关键字声明变量而不定义它。
第一句的extern语句是声明不是定义,不分配存储空间。此句只是说明变量定义在程序的其他地方。程序中变量可以声明多次,但只能定义一次。
带初始化式的声明:
如果声明有初始化式(有存储空间来进行初始化),那么它可被当作是定义,即使声明标记为extern:
使用了extern,该条语句还是定义了pi,分配并初始化了存储空间。只有当extern声明位于函数外部时,才可以含有初始化式。
因为已初始化的extern声明被当作是定义,所以该变量的任何随后的定义和含有初始化式的extern声明都是错误的。
在多个文件中使用的变量应该有定义和声明的严格分离。一般情况下,在一个文件中定义变量,其他使用该变量的文件中声明该变量(不是定义)。
二、类的定义
C++中可以使用关键字class或者struct来定义类。
如果使用class关键字定义类,成员的默认访问属性是private。
如果使用struct关键字来定义类,默认属性是public。
使用class还是struct关键字来定义类,仅仅影响默认的初始访问级别。
在C++语言中,变量只能定义一次,在使用变量之前必须定义或声明变量。
1)变量的定义用于为变量分配存储空间,还可为变量指定初始值。
2)声明用于向程序表明变量的类型和名字。定义也是声明:当定义变量时我们声明了它的类型和名字。
可以通过使用extern关键字声明变量而不定义它。
extern int i; // 声明但不是定义i int i; // 声明并且定义i
第一句的extern语句是声明不是定义,不分配存储空间。此句只是说明变量定义在程序的其他地方。程序中变量可以声明多次,但只能定义一次。
带初始化式的声明:
如果声明有初始化式(有存储空间来进行初始化),那么它可被当作是定义,即使声明标记为extern:
extern int num=10; // 定义
使用了extern,该条语句还是定义了pi,分配并初始化了存储空间。只有当extern声明位于函数外部时,才可以含有初始化式。
因为已初始化的extern声明被当作是定义,所以该变量的任何随后的定义和含有初始化式的extern声明都是错误的。
extern int num = 10; // 定义 int num; // 错误:重复定义变量num
extern int num = 10; // 定义 extern int num; // 正确: 声明不是定义 extern int num = 10; // 错误:重复定义变量num
在多个文件中使用的变量应该有定义和声明的严格分离。一般情况下,在一个文件中定义变量,其他使用该变量的文件中声明该变量(不是定义)。
二、类的定义
C++中可以使用关键字class或者struct来定义类。
如果使用class关键字定义类,成员的默认访问属性是private。
如果使用struct关键字来定义类,默认属性是public。
使用class还是struct关键字来定义类,仅仅影响默认的初始访问级别。
相关文章推荐
- C++11多线程(十):atomic原子操作的高效率(实例)
- CPPUTest 单元测试框架(针对 C 单元测试的使用说明)
- STL之list容器函数用法详解
- AFE4400数据处理——C语言实现22位数据转换
- 帮 C/C++ 程序员彻底了解链接器
- C++Lamda表达式
- c++中如何通过函数参数对指针进行赋值
- 在用到iframe的前端页面调用c++的或者android方法时提示找不到方法问题解决
- [Qt C++] 连连看
- 多项式加法利用链表实现(c语言)
- 介绍几种c/c++编译方式(记事本编译、vim编译)
- 详解c++指针的指针和指针的引用
- C++中while(std::cin >> value)的思考
- C++ function overriding
- C++ Overloading (Operator and Function)
- C++ ABI之名字改变,编译器生成符号研究(以Qt为例)
- C语言中 sizeof 运算的值是在编译时还是运行时确定的?
- C语言execv()函数:执行文件函数
- 【C++ OpenGL ES 2.0编程笔记】5: mipmap
- 求最小公倍数以及最大公因子