- 博客(20)
- 资源 (32)
- 收藏
- 关注
原创 以对象管理资源 auto_ptr和shared_ptr
void doSomething(){ int *a=new int(100); /* ...... 如果此处的代码发生异常,doSomething()会提早返回,而delete也将不会执行,最终导致资源泄漏 */ delete a;}为了保证doSomething()中资源总是能够得以释放,我们将资源放入对象中,当控制流离开doSomething(),对象的析构函数自动释放资
2012-08-26 08:47:43 1140
原创 vs2008下编译boost_1_47_0
1.下载boost库,并解压,我下载的 boost_1_47_0.zip,我解压到C盘。2.运行--cmd:输入 cd C:\boost_1_47_0,回车,转移到boost解压后的根目录3.运行bootstrap.bat,生成b2.exe4运行命令b2 --toolset=msvc-9.0 --build-type=complete等待30到60分钟,编译完成,提示信息如下。
2012-08-25 18:13:29 1244
原创 《Effective C++》operator=返回*this的目的:实现连锁赋值
经常看到连锁赋值,如int x,y,z; x=y=z;如果不允许连锁赋值,就麻烦了。对于类来说,我们也希望可以连锁赋值。关键在于重载‘=’运算符的返回值。#include class TEST { public: TEST& operator=(const TEST& rhs){return *this;} }; void main() { TEST a,b,c
2012-08-25 10:03:02 1894
原创 《Effective C++》不要在构造函数和析构函数中调用虚函数
#include class BASE { public: BASE() { myPrint(); } ~BASE() { myRelease(); } protected: virtual void myPrint(){cout<<"Base"<<endl;} virtual void myRelease(){cout<<"Base Rele
2012-08-25 09:37:24 2889
原创 由Qt中qApp想到的(这是单例模式么???)
学Qt时,发现只要包含头文件QApplication或者QCoreapplication,就用使用qApp,指向一个当前实例。查看源码发现qApp是个宏:QApplication中:#define qApp (static_cast(QCoreApplication::instance()))QCoreapplication中:#define qApp QCoreApplication
2012-08-18 16:15:44 24181 6
原创 Qt4.8.2 托盘
widget.h#ifndef WIDGET_H#define WIDGET_H#include #include class Widget : public QWidget{ Q_OBJECT public: Widget(QWidget *parent = 0); ~Widget();private: QSystemTrayIco
2012-08-18 15:20:41 1895
原创 Qt4.8.2 模仿QQ右下角弹窗提示
今天在CSDN偶然看到一位前辈用JAVA写的QQ右下角弹窗提示,而自己正在学习Qt,所以也自己试着写一下,虽然代码乱的一塌糊涂,但最后还是能够运行了。程序最终运行:输入内容并点击确定的时候,从右下角平滑弹出下图。停留10秒后,逐渐变透明并最终消失,可自行关闭和点击浏览按钮浏览输入的网址。 一、输入内容的对话框从QDialog继承,点击确定,内容不为空时,作适
2012-08-17 18:41:07 8609 5
原创 类成员变量的赋值与初始化
C++规定:对象的成员变量的初始化动作发生在进入构造函数本体之前。#include #include using namespace std;class STU{public: /* name为初始化,sex和age为赋值 */ STU(string _name,string _sex,int _age):name(_name) { sex=_
2012-08-16 14:53:38 12178
原创 #include与寻找函数的实现
大一学C++的时候,死板的记着“头文件声明函数,源文件实现函数,其余文件如果要用这个函数的话,包含头文件即可”。虽然不知道为什么,但也没仔细想。后来仔细想想,略有所悟。大一时间就这样写程序:fun.hint myAdd(int,int);fun.cpp#include "fun.h"int myAdd(int a,int b){ return a+b;}
2012-08-16 14:19:27 1504 1
原创 《Effective C++》尽量以const,enum,inline,替换#define
在程序被编译器编译之前,宏会被预处理器执行文本替换,编译器或许根本看不到宏。例如 #define ASPECT_RADIO 1.653,如果因为此常量出现问题,编译器也许会提到1.653而不是ASPECT_RADIO。十分不利于分析调试。解决之道是以一个常量替换之const double AspectRadio=1.653。使用常量可能比使用宏产生更小的目标码。因为预处理器“盲目的将ASP
2012-08-16 09:37:06 952
原创 extern char *a与extern char a[]
《C陷阱与缺陷》提到要特别注意extern char *a与extern char a[]之间的区别。所以特意测试了一下。测试环境VC6b.cppchar *a="ABCDEF";char b[]="ABCDEF";第一种情况:主文件中声明extern char a[];extern char b[];#include extern char a[]
2012-08-15 19:31:36 9703 5
原创 构造函数,拷贝构造函数,赋值操作符的调用时机
#include class TEST{public: TEST() { cout<<"默认构造函数"<<endl; } TEST(const TEST&t) { cout<<"拷贝构造函数"<<endl; } TEST &operator =(const TEST&t) { cout<<"赋值操作符"<<endl; return *this; }};
2012-08-15 14:59:15 1325
原创 Qt4.8.2 Qt调用dll
dll用VC6编写,导出函数int myQtAdd(int a,int b);默认C调用约定addDll.hint myQtAdd(int a,int b);addDll.cpp#include "addDll.h"int myQtAdd(int a,int b){ return a+b;}addDll.defLIBRARY addDllEXPORT
2012-08-14 19:34:42 2390 1
原创 Qt4.8.2 拖放技术
原文:http://www.chineselinuxuniversity.net/articles/52558.shtml,并且参考《Qt学习之路》拖放技术由两部分组成:拖Drag、放Drop。拖:按下鼠标并且移动鼠标以拖动对象。放:鼠标松开的过程。拖和放之间,鼠标是一直按着的。 下面的小程序实现了:当拖动具有某种属性的对象到窗体时,鼠标显示可以拖放。鼠标松开时,在窗体的lab
2012-08-14 13:41:43 1777
原创 由rand()函数想到的
rand()函数,生成[n,m]之间随机数的方法是rand()%(m-n+1)+n。之前学习的时候,不知道为什么这个函数为什么这怪,也没仔细去想。只是感觉这个函数太难记了,以至于每次使用都得查。最近,一室友(简称TT)在用这个函数的时候也忘记怎么用了,于是我们商量了一下,终于觅得真章。首先rand()函数是生成[0,RAND_MAX]之间的随机数,而%表示取余,(m-n+1)表示一个间
2012-08-13 11:12:13 1043 1
原创 Qt4.8.2 不会ps的程序员也可以抠图
一、最近学习Qt的时候正在做一个音乐播放器,做的差不多了。但是关闭按钮咋看咋难看。这个关闭按钮还是从一位前辈的Qt实现360新功能的资源里拷过来的,但是在这上面看着很不好看啊。所以,在网上搜了点按钮贴图。找了好久,看到了不错的。但是,,,,所以的小按钮在一张jpg上面,于是搬出PS,由于资质愚笨,弄了好久也没有抠出按钮图片,于是想试试编程实现。二、思路首先观察这张图
2012-08-11 15:38:41 4218 3
原创 Qt4.8.2 QPushButton按钮贴图以及实现按钮的几种常用状态
一、继承自QPushButton,不改变图片本身,而是通过改变按钮背景的透明度myPushButton.h#ifndef MYPUSHBUTTON_H#define MYPUSHBUTTON_H#include class myPushButton : public QPushButton{ Q_OBJECTpublic: explicit myPushBut
2012-08-10 13:10:39 14581
原创 Qt4.8.2 右键弹出菜单及子窗口弹出位置不正确
一、关联菜单策略 QWidget:: contextMenuPolicy帮助文档:This property holds how the widget shows a context menu.The default value of this property is Qt::DefaultContextMenu, which means the contextMenuEv
2012-08-06 16:15:20 9064
原创 Qt4.8.2 实现简单的界面换肤功能
声明下:这只是我自己在学习Qt的时候,想到的,也不知道这方法合不合适,反正是能够实现换肤功能。一、思路及准备双击主程序界面,弹出换肤界面,点击换肤界面上的图片,主程序改变相应界面背景图片。我准备了四张图片,big_spring.png,big_summer.png,small_spring.png,small_summer.png.看名字就知道换肤界面列出来small_spring.p
2012-08-03 10:31:38 8924 6
原创 Qt 内存管理与布局管理器
一、new与delete在C++学习中,new与delete必须成对使用,防止内存泄漏,可是在学习Qt时,我发现很多new,而却几乎找不到delete。在网上搜索得知:Qt完善了C++的内存管理机制,“如果指针对象有父对象,那么父对象在被释放时,会自动释放子对象”。所以我在练习时,创建的控件都传递了this指针,作为其父对象。但是,当我在练习布局管理器的时候,却出了问题。二、传递了父对
2012-08-02 22:57:13 4618 1
3-sum算法求解 python
2014-09-06
查找数组中和为某个值的元素对的个数
2014-09-05
查找数组中最接近与某值的元素 python
2014-09-04
linux webserver例子
2013-10-13
Qt4.8.2 加农炮小游戏 cannon 源码 和exe文件
2012-08-02
约瑟夫环问题程序 源代码
2011-03-20
链表(创建,清空,删除元素,求长度,插入元素)
2011-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人