02 2020 档案
摘要:以前在写驱动程序的时候,需要把驱动分为平台device和平台driver两部分。在平台device中会放入硬件所使用的资源,使用C代码来指定platform_device,当需要修改硬件资源时,比如说想去修改led的引脚时,需要重新修改C文件,重新编译内核。再后来我们使用了设备树,可以在设备树中指定
阅读全文
摘要:StaticLinkList中数据元素删除时的效率问题 void destroy(Node* pn) { SNode* space = reinterpret_cast<SNode*>(m_space); SNode* psn = dynamic_cast<SNode*>(pn);//从父类指针,转
阅读全文
摘要:LinkList中遍历操作与删除操作混合使用 删除成功后,list.current()返回什么值? #include <iostream> #include "LinkList.h" using namespace std; using namespace DTLib; int main() { L
阅读全文
摘要:LinkList中的数据元素删除 LinkList<Test> list; Test t0(0), t1(1), t2(2); try { list.insert(t0); list.insert(t1); //在t1析构时抛出异常 list.insert(t2); list.remove(1);
阅读全文
摘要:模态对话框(QDialog::exec())-显示后无法与父窗口进行交互-是一种阻塞式的对话框调用方式非模态对话框(QDialog::show())-显示后独立存在可以同时与父窗口进行交互-是一种非阻塞式的对话框调用方式 一般情况下-模态对话框用于必须依赖用户选择的场合(80%) 消息提示,文件选择
阅读全文
摘要:对话框是与用户进行简短交互的顶层窗口QDialog是Qt中所有对话框窗口的基类QDialog继承于QWidget是一种容器类型的组件 QDialog的意义-QDialog作为一种专用的交互窗口而存在-QDialog不能作为子部件嵌入到其它容器中-QDialog是定制了窗口式样的特殊的QWidget
阅读全文
摘要:Qt对象之间可以存在父子关系-每一个对象都保存有它所有子对象的指针-每一个对象都有一个指向其父对象的指针 parent是一个对象,它里面有一个子对象指针链表,里面的每个指针指向了一个子对象。这些子对象也存有指向parent的指针 Qt中的对象如何指定它的父对象呢?当指定Qt对象的父对象时-其父对象会
阅读全文
摘要:什么空指针问题呢?首先看一下调用过程:创建一个NullPointerException类的对象(1)调用父类的构造函数Exception,并且以0作为参数;(2)调用到init函数,以3个0作为参数;(3)通过调用strdup函数,将message复制一份出来,然后将复制出来的message赋值给m
阅读全文
摘要:实验一:证明new_handler全局函数是否存在 #include <iostream> #include <new> #include <cstdlib> #include <exception> using namespace std; class Test { int m_value; pu
阅读全文
摘要:动态内存申请一定成功吗?常见的动态内存分配代码 C代码: int* p = (int*)malloc(10 * sizeof(int)); if( p!=NULL ) { //... ... } C++代码: int* p = new int[10]; if( p!=NULL ) { //... .
阅读全文
摘要:问题:如何判断一个函数是否会抛出异常,以及抛出哪些异常?假设在开发的时候,调用一个函数来完成某项任务,这个函数不是你写的或者是第3库中的一个函数,那么问题来了,你如何确定这个函数会不会抛出异常呢?为什么要搞清这个问题,因为我们学习了异常处理,那么我们在调用一个函数的时候,就必须考虑这个函数会不会抛出
阅读全文
摘要:问题:如果在main函数中抛出异常会发生什么? #include <iostream> using namespace std; class Test { public: Test() { cout << "Test()" << endl; } ~Test() { cout << "~Test()"
阅读全文
摘要:new[]/delete[]与new/delete完全不同-动态对象数组创建通过new[] 完成-动态对象数组的销毁通过delete[]完成-new[]/delete[]能够被重载,进而改变内存管理方式 new[]/delete[]的重载方式 //static member function voi
阅读全文
摘要:如果已经掌握在静态存储区上创建对象的方法,那么可以扩展一下,可以在任意地址上创建C++对象。 解决方案:-在类中重载new/delete操作符-在new的操作符重载函数中返回指定的地址-在delete操作符重载中标记对应的地址可用 自定义动态对象的存储空间 第二个实验指定了空间为静态存储区中的空间,
阅读全文
摘要:#include <iostream> #include <string> using namespace std; class Test { private: static const unsigned int COUNT = 4; static char c_buffer[]; //首先定义一个
阅读全文
摘要:new关键字创建出来的对象位于什么地方?很明显嘛,new关键字创建出来的对象一定位于堆空间,这种说法一定正确吗?本篇博客帮你揭开其神秘的面纱。 被忽略的事实new/delete的本质是C++预定义的操作符C++对这两个操作符做了严格的行为定义-new:1.获取足够大的内存空间(默认为堆空间)2.在获
阅读全文
摘要:实例1:适用于非const对象 #include <iostream> #include <string> using namespace std; class Test { private: int m_value; int m_count; public: Test(int value = 0)
阅读全文
浙公网安备 33010602011771号