C++中知识点
来源:互联网 发布:淘宝客如意投 编辑:程序博客网 时间:2024/06/04 01:30
C++中知识点
1. static
在C语言中,有如下作用:
1) 在函数体内,static修饰的变量值在函数调用过程中维持不变。
2) 在模块内(函数体除外),static修饰的变量(本地全局变量)作用域只在本模块内。
3) 在模块内,static修饰的函数,作用域只在本模块内部。
在C++语言中,有如下作用:
1) 成员变量:静态成员变量(数据成员)——所有对象一份数据
2) 静态变量初始化须在类外。int A::i = 0;
3) 成员函数:静态成员函数。A::fun();
4) 静态成员函数不能访问非静态成员变量。(先有类才有对象)
5) 静态内容是属于类的,非静态内容是属于对象的。
6) C++中static修饰的成员变量是以全局变量的形式存在,不占类的内存。
注:一个空类占一个字节,以保证创建的对象占用不同的内存(对象唯一的)。
2. Const
Const 意味着“只读”。
1) const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令
2) 可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。
3) 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
4) 可以节省空间,避免不必要的内存分配。
3. 重载(overload)和重写(override,“覆盖”)的区别?
重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
重写:是指子类重新定义父类虚函数的方法。
从实现原理上来说:
重载:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。
重写:和多态真正相关。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚绑定)。
4. C++是不是类型安全的?
不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)。C#是类型安全的。
- C中容易忽略的知识点
- C程序中常用知识点注意事项
- C语言学习知识点汇总,待续中...
- c语言中结构(struct)知识点
- c知识点
- C 知识点
- 关于C语言知识点总结(随时更新中)
- C 语言中一些非常用知识点 备忘录
- 对“Professional C++” 中若干知识点的小结与思考
- C语言中最容易出错的知识点
- 黑马程序员-03.C 语言中基础知识点的总结
- 和大家分享C语言中几个知识点
- 【知识点】C语言中对时间的操作
- 知识点1:C语言中exit()与return的区别
- C/C++code知识点
- C/C++【知识点笔记】
- C基础知识点小记
- c#知识点 net
- kmalloc, vmalloc分配的内存结构
- Android Layout XML属性
- 嵌入式Linuxwebserver:Boa+CGI程序设计技术
- 利用Spring框架封装的JavaMail现实同步或异步邮件发送
- 运算符
- C++中知识点
- Linux内存管理和分析vmalloc使用的地址范围
- Oracle RAC 并发与架构
- 编写JQuery插件
- 一位ACMer过来人的心得
- WebRequest持久化 保存登录状态
- Java-可变类和不可变类
- Codeforce172 Div2
- PHP 判断字符的编码 并输出想要的编码格式字符