已采纳回答 / qq___思念不破海丶_1
本质上所有的操作系统都是一个死循环,不停的接收以及响应用户的处理和给予反馈真正的问题在于要分析清楚你所需要的所有资源的生命周期,包括内存的申请和释放,外设的创建和销毁等等。只要是你申请的资源,你必须确认他能够及时正确的得到销毁。还有一点是既然死循环必须要考虑何时和怎样释放CPU,例如利用信号量等待将当前任务/进程挂起,或者简单的利用wait/sleep之类函数主动释放。
2017-03-24
已采纳回答 / 慕仔5649330
写到基类,只是将直接include iostream 变成通过include 基类头文件间接include iostream,有时这样反而造成更多的空间浪费,比如你有一个.cpp可能只需要用到iostream头文件中的东西,而不需要基类头文件中的东西,你这时候包含基类头文件反而是浪费,所以包含头文件尽量不要传递,即通过include某个头文件而include另一些头文件
2017-03-23
最新回答 / 景曼_0001
不是虚函数那就不存在于虚函数表中,至于虚函数表是否存在,取决于还有没有其余的虚函数(包括从父类继承来的虚函数)。至于父类与子类的虚函数如何存放,好像是子类的新的虚函数会添加在父类的虚函数表后面作为子类的虚函数表,如果我么记错的话,应该是这样。
2017-03-22
最赞回答 / 氵幻世丨逐月丿
因为是在circle中实例化了coordinate的对象了,在circle的析构函数中执行了coordinate的析构操作,所以是先析构circle
2017-03-20
2.然后分别编写class Mysql、class Oracle,实现父抽象类中定义的方法,在业务中使用DB指针接受一个子类的实例,可以配合配置文件来达到不需要修改业务逻辑代码,而切换迁移数据库的目的
3.高级特性的好处有很多,能否用好,需要开发者有一个良好的设计概念,配合一些好的设计模式(工厂、观察者、DI、订阅等等)能实现一个高度灵活的系统,也是一个好的程序员必须要掌握的东西
3.高级特性的好处有很多,能否用好,需要开发者有一个良好的设计概念,配合一些好的设计模式(工厂、观察者、DI、订阅等等)能实现一个高度灵活的系统,也是一个好的程序员必须要掌握的东西
2017-03-16
一般多态、抽象类、接口,都是OOP中的常用高级特性,刚入行的人可能不太理解,一般是小组leader为了代码的规范和可扩展性及规范性,首先编写好抽象类、接口等,然后再让小组成员去实现,这样起到一个限制作用,可以举个例子:
当我们的系统需要连接数据库的时候,可能现在的库是mysql,但不能保证以后会不会切换为sqlserver、oracle等
那么这个时候抽象类就有用了
1.定义一个抽象类,class DB,其中包含一些数据库的通用抽象方法(纯虚函数),比如连接库,执行语句等等,抽象类中,不负责具体实现,只需定义其子类必须实现的方法
当我们的系统需要连接数据库的时候,可能现在的库是mysql,但不能保证以后会不会切换为sqlserver、oracle等
那么这个时候抽象类就有用了
1.定义一个抽象类,class DB,其中包含一些数据库的通用抽象方法(纯虚函数),比如连接库,执行语句等等,抽象类中,不负责具体实现,只需定义其子类必须实现的方法
2017-03-16