第27课 - 动态类型识别 问题:下面的程序有问题吗? class Parent { public: virtual -Parent() { } }; class Child : public Parent { }; void test(Parent* p) { Child* c = (Child* ...
分类:
编程语言 时间:
2019-08-11 21:27:35
阅读次数:
128
由于c++没有垃圾回收机制,像堆只能手动开辟内存,手动释放,像栈只能系统开辟,系统释放,于是智能指针出现了,它实现了内存的手动开辟,系统释放,防止了内存泄漏问题; 我们知道, 栈对象在离开其作用域的时候, 会自动调用析构函数, 所以, 可以考虑把某一栈对象与某一堆内存绑定,且在其析构函数中释放堆内存 ...
分类:
其他好文 时间:
2019-08-10 13:44:19
阅读次数:
76
问题:一个空类包含什么 空的构造函数 拷贝构造函数(浅拷贝) 重载赋值操作符函数(浅拷贝) 析构函数 取址运算符 取址运算符const 空的构造函数 拷贝构造函数(浅拷贝) 重载赋值操作符函数(浅拷贝) 析构函数 取址运算符 取址运算符const 注意 所有的这些默认函数,只有在代码中调用了才会生成 ...
分类:
编程语言 时间:
2019-08-03 16:16:56
阅读次数:
140
一、default和delete关键字 (一)编译器提供的“缺省函数” 1.类的成员函数:构造/析构函数、复制构造/复制赋值函数、移动构造/移动赋值函数。 2. 类的全局默认操作函数:operator new/delete、operator,、operator*、operator->、operato ...
分类:
其他好文 时间:
2019-08-02 00:14:40
阅读次数:
121
上一篇线程池里,有一个返回std::shared_ptr<T>对象,他其实是c++里面的智能指针 std::shared_ptr std::shared_ptr大概总结有以下几点: (1) 智能指针主要的用途就是方便资源的管理,自动释放没有指针引用的资源。 (2) 使用引用计数来标识是否有多余指针指 ...
分类:
编程语言 时间:
2019-07-28 17:17:31
阅读次数:
102
单例模式有以下3个特点: 1.只能有一个实例。 2.必须自行创建这个实例。 3.必须给其他对象提供这一实例。 $_instance必须声明为静态的私有变量 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义 getInstance()方法必须设置为公有的,必须调用此方法 ...
分类:
Web程序 时间:
2019-07-27 09:37:21
阅读次数:
127
一. list 实例 二. 源码学习 #ifndef _LIST_H //条件宏编译,避免重复定义 #define _LIST_H#include<assert.h> //断言引入的头文件 #include<malloc.h> //申请空间所引入的头文件 template<class _Ty> // ...
分类:
编程语言 时间:
2019-07-26 01:54:01
阅读次数:
126
复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够复制代码并对之加以改变是不够的,它还必须做更多的事情。 使用类而不破坏程序代码: 在新类中产生现有对象。由于新的类是由现有类的对象组成,所有这种方法称为组合。 按照现有类的类型来创建新类。无需改变现有类的形式,采用现有类的 ...
分类:
编程语言 时间:
2019-07-22 22:41:18
阅读次数:
137
标签: C++ 1. 类的初始化 几种不同初始化的区别: A a;和A *a=new A()的区别,示例程序如下: 执行结果如下,通过A a1("gqx")形式初始化的对象,在程序结束的时候会自动回收内存,调用析构函数,而通过new方式初始化的对象需要手动释放内存。 修改主程序如下后: 执行结果如下 ...
分类:
编程语言 时间:
2019-07-01 21:34:52
阅读次数:
154