qq18457852
qq18457852
全部文章
分类
c++(55)
Linux内核与操作系统(12)
linux系统编程与网络编程(31)
代码随笔(4)
分布式系统与中间件(1)
服务器架构设计(2)
深度学习(6)
网络与数据库(7)
设计模式(2)
题解(1)
归档
标签
去牛客网
登录
/
注册
qq18457852的博客
全部文章
(共121篇)
c++ new
加括号调用没有参数的构造函数,不加括号调用默认构造函数或唯一的构造函数 C++在new时的初始化的规律可能为:对于有构造函数的类,不论有没有括号,都用构造函数进行初始化;如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,而加了括号的new会在分配内存的同时初始化为0。 ...
2019-06-22
0
397
随笔一:子类继承与构造函数,析构函数,纯析构函数
今天写代码遇到了一个问题,在链接期编译器报错"undefined reference to vtable...",这个错误一般是由于有虚函数生命但未被定义,因此在虚函数表中找不到reference。然而我报错的这个类中根本就没写虚函数啊,反复排查发现该类继承了一个factory类...
2019-06-19
0
961
c++静态成员函数与静态数据成员
对象与对象之间的成员变量是相互独立的。要想共用数据,则需要使用静态成员和静态方法。 只要在类中声明静态成员变量,即使不定义对象,也可以为静态成员变量分配空间,进而可以使用静态成员变量。(因为静态成员变量在对象创建之前就已经被分配了内存空间) 静态成员变量虽然在类中,但它并不是随对象的...
2019-06-18
0
512
c++静态成员函数的作用
静态成员函数主要为了调用方便,不需要生成对象就能调用。 比如: class X { public: void MethodA(); static void MethodB(); } 此时MethodB可以直接调用,X::MethodB(); MethodA必须先生成类对象...
2019-06-18
0
342
c++ 防止类被派生,不用final如何实现
c++中没有提供类似Java的final classes那样的禁止派生的机制(c++11有final,防止类被继承) 为了避免产生虚函数表,如果类不是基类的话,析构函数就不需要声明为虚函数。 但是,我们不能预料用户的行为,你不敢肯定用户是否会从你的类去派生自己的类。如果用户以一个基类指针...
2019-06-13
0
436
cpu,寄存器,控制器,运算器
关于CPU 寄存器 CPU除了有控制器、运算器还有寄存器。其中寄存器的作用就是进行数据的临时存储。 CPU的运算速度是非常快的,为了性能CPU在内部开辟一小块临时存储区域,并在进行运算时先将数据从内存复制到这一小块临时存储区域中,运算时就在这一小块临时存储区域内进行。我们称这一小块临时存...
2019-06-13
0
506
c++ volatile关键字
volatile关键字确保本条指令不会因编译器的优化而省略,且要求每次直接读值。 精确地说就是,编译器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1)并行设备的硬件寄存器(如:状态寄存器) 2)一个中断服务...
2019-06-13
0
579
设计模式之对象组合与继承
1.什么是继承 A继承B,说明A是B的一种,并且B的所有行为对A都有意义 eg:A=WOMAN B=HUMAN A=鸵鸟 B=鸟 (不行),因为鸟会飞,但是鸵鸟不会。 2.什么是组合 若在逻辑上A是B的“一部分”(a part of),则不允许B从A派生,而是要用A和其它东西组合出B。 例如眼(Ey...
2019-06-12
0
417
进程饥饿与死锁
1.饥饿是指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死。 2.死锁是指在多道程序系统中,一组进程中的每一个进程都无限期等待被该组进程中的另一个进...
2019-06-11
0
605
c++ 前向声明
一、使用场景 假设有两个类A和B,类A要将类B的对象(或者指针)作为自己的成员使用,并且类B将类A的对象(或者指针)作为自己可以访问的数据,那么这个时候要在a.h中include b.h,同时在b.h 中要include a.h,但是相互包含是不可以的,这个时候就要用到类的前向声明了。 ...
2019-06-11
0
419
首页
上一页
4
5
6
7
8
9
10
11
12
13
下一页
末页