摘要: 在c++ 中,虚拟内存分为代码段、数据段、bss段、文件映射区、堆区、栈区 代码段:包括只读存储区和文本区,其中只读存储区存储字符串常量,文本区存储程序的机器代码。 数据段:存储程序中已经初始化的全局变量和静态变量。 bss段:存储未初始化的全局变量和静态变量,以及所有被初始化为0的局部变量和静态变 阅读全文
posted @ 2020-10-08 21:25 gongyc 阅读(57) 评论(0) 推荐(0)
摘要: 多态的实现主要分为静态多态和动态多态,静态多态主要是重载,在编译的时候就已经确定;动态多态是用虚函数机制实现的,在运行期间动态绑定。例如:一个父类类型的指针指向一个子类对象的时候,使用父类的指针去调用子类中重写了的父类中虚函数时候,会调用子类重写过的函数,在父类中声明加了virtual关键字的虚函数 阅读全文
posted @ 2020-10-08 16:35 gongyc 阅读(206) 评论(0) 推荐(0)
摘要: 为什么有的时候,析构函数必须是虚函数? 将可能会被继承的父类的析构函数设置为虚函数,可以保证当我们new一个子类的时候,然后使用基类指针指向该子类对象,释放基类指针的时候,可以释放掉子类空间,防止内存泄漏。 c++默认的析构函数不是虚函数是因为虚函数需要额外的虚函数表和虚表指针,占用额外的内存。而对 阅读全文
posted @ 2020-10-08 16:11 gongyc 阅读(81) 评论(0) 推荐(0)
摘要: 四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_ptr,第一个在c++11中已经被弃用,后三个是c++11支持的 为什么要使用智能指针: 智能指针的作用是管理一个指针,因为存在以下情况:申请的空间在函数结束时忘记释放,造成内存泄漏。使用智能指针可以很大程 阅读全文
posted @ 2020-10-06 21:30 gongyc 阅读(138) 评论(0) 推荐(0)
摘要: IP地址 全世界唯一的32位、4字节标识符,标识路由器主机的接口 IP地址::{<网络号>,<主机号>} 分类的IP地址 特殊IP地址 私有IP地址 阅读全文
posted @ 2020-10-06 16:40 gongyc 阅读(90) 评论(0) 推荐(0)
摘要: 声明类静态函数的原因 在有些场景中,类需要它的一些成员与类关联,而不是与类的各个对象保持关联。 静态成员的声明 一般在成员的声明之前加上 static 关键字,使得静态成员与类关联起来。和其它成员一样,静态成员可以是 public 或者 private或者protect。静态数据成员的类型可以是常量 阅读全文
posted @ 2020-10-06 00:17 gongyc 阅读(550) 评论(0) 推荐(0)