自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 计算机网络高频面试问题总结

网络的几种分层体系结构建立TCP服务器的各个系统调用socket网络编程有哪些系统调用?其中close是一次就能直接关闭的吗,半关闭状态是怎么产生的?MTU和MSS对路由协议的了解与介绍内部网关协议(IGP)包括RIP,OSPF,和外部网关协议EGP和BGP.路由协议所使用的算法路由表的项目包括哪些地址解析协议ARP的过程网际控制报文协议ICMP的过程动态主机配置协议DHCP的...

2019-08-28 16:48:23 2795

原创 操作系统高频面试问题总结

进程与线程的区别和联系link进程和线程的关系:(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。(3)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。(4)处理机分给线程,即真正在处理机上运行的是线程。(5)线程是指进程内的一个执行单元,也是进程内的可调度实体。线...

2019-08-19 17:05:04 1397

原创 C++常见面试问题汇总

C++常见面试问题汇总指针和引用的区别堆和栈的区别new和delete是如何实现的,new 与 malloc的异同处C和C++的区别C++、Java的联系与区别,包括语言特性、垃圾回收、应用场景等(java的垃圾回收机制)Struct和class的区别define 和const的区别(编译阶段、安全性、内存占用等)在C++中const和static的用法(定义,用途)const和...

2019-08-14 21:17:22 1016

原创 条款14:在资源管理类中小心copying行为

两种选择:1.禁止复制2.采用引用计数法

2019-08-14 20:46:23 183

原创 条款13:以对象管理资源

1.把资源放进对象中,在析构函数中把内存释放掉2.获得资源后立刻放进管理对象(在构造函数中操作)3.使用智能指针可以避免内存泄漏

2019-08-02 09:28:14 65

原创 条款12: 复制对象时勿忘其每一个成分

1.复制所有local成员变量2.调用所有base classes内适当的copying函数。3.不能在赋值拷贝函数内调用拷贝构造函数,反过来也不可以。相同机能应该放入第三个函数中,被两个拷贝函数调用。...

2019-07-31 20:21:16 86

原创 条款11:在operator=中处理“自我赋值”

1.如果在赋值中传入的是自己本身,需要注意先判断是否是自己,如果是,则返回,以防止两个都销毁,不能赋值。2.或者可以先用一个变量把自身存起来,先不删除空间,申请新空间后如果出错,也不会没有空间,之后再删除临时变量,可以保证安全性。3.或者可以用数据交换的方法,把传入和自身数据交换。...

2019-07-31 11:50:45 84

原创 条款10:令operator=返回一个reference to *this

1.为了能够连续赋值,赋值相关运算都应该写为reference to *this的形式。

2019-07-31 11:35:28 128

原创 条款9:绝不在构造和析构过程中调用virtual函数

1.基类的构造函数比派生类的构造函数早运行,如果为虚,转到派生类,而派生类还没有构造,会出现问题。2.派生类在基类的构造期间,对象的类型是基类类型...

2019-07-31 11:32:32 79

原创 条款8:别让异常逃离析构函数

1.c++不喜欢在析构函数中吐出异常,因为如果要析构一个vector 类型的对象,每一个类的对象都要析构,则会重复抛出异常。2.需要在析构函数中自己对异常进行回收,如果客户需要对异常做出反应,应该提供普通函数执行,而不是在析构函数中。...

2019-07-31 11:10:44 65

原创 条款7:为多态基类声明virtual析构函数

1.如何虚基类的析构函数不声明为虚,则在释放的时候,子类并不会释放掉,而只是释放父类的空间。因此要把含有虚函数的基类的析构函数也声明为虚。2.如果基类没有虚函数,则析构函数不能为虚,否则会增大对象的空间,浪费空间。...

2019-07-31 11:01:16 67

原创 条款6:若不想使用编译器自动生成的函数,就该明确拒绝

1.可以把拷贝构造函数或赋值构造函数声明为private,则可以禁止调用这两个默认函数,并且没有这两个函数的实现,可以禁止member函数和friend函数。2.也可以声明一个基类,让目标类私有继承这个基类,并且不写赋值和拷贝构造函数,则调用时就会报错。...

2019-07-30 20:44:17 126

原创 条款5:了解c++默默编写并调用哪些函数

1.构造类时默认生成default构造函数,copy构造函数,copy assignment,和一个析构函数2.如果自己构建了这些函数,编译器不会再构建默认的函数。3.如果要包含reference成员或const 成员的class内支持赋值操作,必须自己定义赋值构造函数,...

2019-07-30 20:34:55 76

原创 条款1

c++包含多种类型编程语言:1.以c为基础2.object-oriented c++ 面向对象3.template c++ 泛型编程4.STL

2019-07-30 20:07:09 198

原创 条款2:尽量以const,enum,inline替换#difine

#define 不安全,如果发生错误,调试信息中不会显示定以后的变量,而是原始变量,可以用static const或者const代替。enum back:enum { NumTurns= 5 };可以防止其他的取地址或引用,更类似于#define,但是更加安全。形似函数的宏最好用inline函数替代。...

2019-07-30 20:06:07 90

原创 条款3:尽可能使用const

const在星号左边表示被指物是常量,在星号右边说明指针自身是常量,在两边说明两者都是常量。const vector::iterator iter类似const T* 即迭代器不可改变,所指之物可以改变。vector::const_iterator 类似T* const 即迭代器可以改变,所指之物不可改变。const在函数前,修饰返回值时,表示返回值是const的,可以防止手误打错为(a *...

2019-07-30 20:05:50 75

原创 条款4:确定对象被使用前已先被初始化

由于模式不同(条款1),初始化后的初始值可能不一样,因此需要在使用对象之前进行初始化。!区分清楚赋值和初始化。初始化应该在默认构造函数被调用时(使用成员初始化列表).const 或引用必须初始化。父类比子类更早初始化,初始化列表的初始化顺序为成员变量的声明顺序。为避免在一个类的初始化时,要用到另一个模块的对象,而这个对象不一定已经初始化了。可以用一个函数创建对象,并声明为static,...

2019-07-30 20:04:31 107

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除