摘要:
众所周知,sprintf不能检查目标字符串的长度,可能造成众多安全问题,所以都会推荐使用snprintf. 自从snprintf代替了sprintf,相信大家对snprintf的使用都不会少,函数定义如下: 函数说明: 最多从源串中拷贝size-1个字符到目标串中,然后再在后面加一个0。所以如果目标 阅读全文
摘要:
1.总述 Qt的要在当前类对应的窗口上绘图一般需要重写paintEvent函数,但是Qt的事件过滤器默认是把父窗口下子控件的绘图事件给过滤了的,因此重写父窗口的paintEvent函数是无法在子控件上进行绘图的,下面举一个例子。 1 void MainWindow::myDraw(QLabel * 阅读全文
摘要:
1.案列 先上一段代码,这段代码本来是想从队列中依次取出队头元素,我期望得到的结果是1,2,3,4,然而最后得到的结果却是4,3,2,1。 后来在网上搜索了一番得到的结论是,cout的计算顺序是从右向左,cout的输出顺序是从左向右。这就解释了为什么最后得到的结果是4,3,2,1了,17行的代码从右 阅读全文
摘要:
1.头文件 #include<QFileDialog> 2.用处 这几个函数都是QFileDialog这个类中的静态函数,可以调用当前系统的文件对话框。具体来讲: getOpenFileName返回一个被用户选中的文件的路径,前提是这个文件是存在的。 getSaveFileName返回一个被用户选中 阅读全文
摘要:
1.定义 在GOF的《设计模式:可复用面向对象软件的基础》一书中对观察者模式是这样说的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 2.代码简单实现 阅读全文
摘要:
首先引用的本质是一个指针常量,即int &p=a 等价于 int * const p=&a。指针常量的意思是指针变量中保存的地址不能修改,也就是说不能改变指针的指向,既然引用的本质是一个指针常量,当然也不能改变引用的指向了。 下面代码11行进行c=b操作后,c的值变成了4,乍一看还以为是c改变了指向 阅读全文
摘要:
1.管理方式不同 2.生长方向不同 3.大小不同 4.能否产生碎片不同 5.分配方式不同 6.分配效率不同 1)管理方式:堆,是由程序员进行管理的,需要程序员手动申请和回收空间,如果不回收的话,会造成内存泄漏的问题;栈,是由编译器进行管理的,由编译器自动分配和回收空间,一般保存的是局部变量和函数参数 阅读全文
摘要:
1.装饰模式 装饰模式就是把要添加的附加功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要执行时,客户端就可以有选择地、按顺序地使用装饰功能包装对象。 2.装饰模式的优点 装饰者模式动态的给一个对象添加一些额外的职责。就增加功能来说,此模式比生成子类更为灵活。 3.装饰模式的简单实现 让跑 阅读全文