关于C++的一些小知识点
来源:互联网 发布:linux dump整个内存 编辑:程序博客网 时间:2024/06/05 08:51
int(&ref)[3] = a;
对象是由“底层向上”开始构造的,当建立一个对象时,首先调用基类的构造函数,然后调用下一个派生类的构造函数,依次类推,直至到达派生类次数最多的派生次数最多的类的构造函数为止。因为,构造函数一开始构造时,总是要调用它的基类的构造函数,然后才开始执行其构造函数体,调用直接基类构造函数时,如果无专门说明,就调用直接基类的默认构造函数。在对象析构时,其顺序正好相反。
5.在继承类的虚函数表中
详细情况请参阅
1)虚函数按照其声明顺序放于表中。
2)父类的虚函数在子类的虚函数前面。
3)覆盖父类的虚函数(只是复写虚函数,而非重载)被放到了虚表中原来父类虚函数的位置,由此实现了多态.
6.引用与指针的区别
指针和引用主要有以下区别:
(1)引用必须被初始化,但是不分配存储空间。指针不声明时初始化,在初始化的时候需要分配存储空间。
(2)引用初始化以后不能被改变,指针可以改变所指的对象。
(3)不存在指向空值的引用,但是存在指向空值的指针。
但是由于C++标准并没有对于引用的实现要求,在多数情况下,引用都是使用常量指针实现的.但是编译器会特意去屏蔽这一点,是大家无法读取常量指针.
指针和引用主要有以下区别:
(
1
)引用必须被初始化,但是不分配存储空间。指针不声明时初始化,在初始化的时候需要分配
存储空间。
(
2
)引用初始化以后不能被改变,指针可以改变所指的对象。
(
3
)不存在指向空值的引用,但是存在指向空值的指针。
a.成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
b.覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)
8.理论上来说,子进程应该完整地复制父进程的堆,栈以及数据空间,但是2者共享正文段。
9.如果一个类只有方法而可以考虑使用静态类,即类成员都是静态的,方法都是public的,
静态类只用于包含静态成员的类型,它既不能实例化,静态类的特性是防止继承,防止外部来NEW。
static成员是类的组成部分并不是任何对象的组成部分,因此,static成员函数没有this指针。我们知道,一般而言,类中的成员函数具有一个附加的隐含实参,即指向该类对象的一个指针。这个隐含实参命名为this。因为static成员函数不是任何对象的组成部分,所以static成员函数就没有this形参了。由于成员函数声明为const说明该成员函数不会修改该成员函数所属的对象,所以static成员函数不能声明为const。为什么呢?因为static成员函数不是任何对象的组成部分。static成员函数可以直接访问所属类的static成员,但是不能直接使用非static成员函数!
10.注意内存的释放
相对于拥有垃圾回收机制的JAVA,C++不得不自己控制内存的释放,诸如malloc,new,都需要自己去释放,同时如果是使用win32编程或者是mfc编程,更要注意释放DC,pen等object
11.关于死循环
一般for(;;)性能更优
for(;;)
{}
这两个;; 空语句,编译器一般会优掉的,直接进入死循环
while(1)
{}
每循环一次都要判断常量1是不是等于零,在这里while比for多做了这点事
开启多线程时,while(1)和for(;;)区别会体现出来,前者存在判断环节,导致线程之间出现运行差别。for(;;)则不会影响,理论上线程会保持同时运行
- 关于C的一些小知识点
- 一些关于jdbc的小知识点
- 关于C++的一些小知识点
- 关于C++语言的一些小知识点
- 关于C++类的一些小知识点
- 一些小的知识点(c++)
- C 专家编程的一些小知识点
- 关于ArrayList的一些小的知识点的小程序
- 关于C语言入门的小知识点
- RSS的一些小知识点
- JSP的一些小知识点
- Android的一些小知识点
- 一些有用的小知识点
- java的一些小知识点
- C++的一些小知识点
- Javascript的一些小知识点
- AFNetworking的一些小知识点
- jquery的一些小知识点
- 第五讲 中外数学名题趣题欣赏与解析
- 循环结构
- 线程池ExecutorService的submit和execute
- 快速幂
- 线程同步(synchronized)
- 关于C++的一些小知识点
- oracle安装,
- Android真机测试,Find Explorer无法打开data文件夹解决办法
- 斐波那契数列
- C语言结构体里的成员数组和指针
- LeetCode-Maximum Product Subarray
- 定义自己的ViewGroup
- vc6最后一个版本php下载
- 数学史话(国内篇)