- 博客(16)
- 收藏
- 关注
翻译 19.6 union一种节省空间的类--使用类管理union成员
含有类类型成员的union:c++早期版本规定,在union中不能含有定义了构造函数或拷贝控制成员的类类型成员。当union包含的是内置类型的成员时,编译器将按照成员的次序依次合成默认构造函数或拷贝控制成员。但是如果union含有类类型的成员,并且该类型自定义了默认构造函数或拷贝控制成员,则编译器将为union合成对应的版本并将其声明为删除的所以需要使用类来管理union成员
2017-10-10 22:59:03 584
翻译 c++11 decltype
特殊规定:1. 解引用运算符返回一个左值,因此通过decltype推断的类型为beg表示的元素的类型的引用。template auto fcn(It beg, It end) ->decltype(*beg){return *beg;}
2017-10-08 22:39:11 241
翻译 c++primar 6.3.3 返回数组指针
这一节要解决的问题:因为数组不能被拷贝,所以函数不能返回数组。方法1:使用类型别名。typedef int arrT[10]using arrT = int[10]; //参见c++primar 2.5.1节(60页)arrT* func(int i);方法2:使用尾置返回类型,任何函数的定义都能使用尾置返回,但是这种形式对于返回类型比较复杂的函数最有效。
2017-09-30 00:14:09 218
转载 c++虚拟克隆
class Base {public:virtual Base* clone();};class Impl1 {public:virtual Impl1* clone(){return new Impl1(*this);}};class Impl2 {public:virtual Impl2* clone(){return new Impl2(*this;);}};有了clone()克隆函数,
2017-06-08 22:59:13 715
转载 欢迎使用CSDN-markdown编辑器
正则表达式-问号的四种用法 原文符号因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,\?有无量词问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次。非贪婪匹配贪婪匹配在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配string pattern1 = @”a.*c”; // greedy match Regex regex = new Reg
2016-11-16 22:44:26 230
原创 面试问题
1、map是用什么实现的?rb_tree(红黑树)2、工厂模式和单例模式 以及他们的运用场景3、左值和右值的区别? 左值有符号(有容器来装值),右值没有符号(只有值没有容器来装值)4、纯虚函数可以定义,不会报错!5、void fun(int a)和 void fun(const int &a) 第一个的效率高于第二个的效率,因为引用底层实现是指针,想获取值的话还要通过指针获取
2016-03-21 23:13:05 242
转载 c++单例模式
class Parent { public: static Parent* GetInstense() { static boost::mutex p_mutex; static Parent *S_singel; if (NULL != S_singel) { return S
2016-03-21 22:34:35 272
原创 QT 和 MFC
1、mfc窗口上贴qt窗口HWND wnd = this->GetSafeHwnd(); q_winWidget = new QWinWidget(this->GetSafeHwnd()); m_pWidget = new MyWidget(); QVBoxLayout *vLayout = new QVBoxLayout(q_winWidget); vLayout->addWidget(
2016-02-19 02:31:45 665
原创 qt 信号槽(connect)失效,【多线程使用信号槽】
在qt多线程中使用信号槽,在发送信号时,需要如下处理: (Call qRegisterMetaType() to register the data type before you establish the connection.) qRegisterMetaType(“MyClass”); 例子:typedef QString CustomString; qRegisterMetaTy
2016-01-14 20:03:06 3510 1
翻译 QTabWidget 双击增加tab页
思路:捕获qtabwidget的双击事件,在双击事件的处理代码中增加tab页步骤: 1、重写QTabWidget,重写void mouseDoubleClickEvent ( QMouseEvent * event ) [virtual protected]函数2、在mouseDoubleClickEvent 函数中addtab添加tab页
2015-07-07 21:56:26 1934
原创 QTabWidget 双击 关闭tab标签
QTabWidget 双击tab标签关闭对应的tab页 步骤: 1、重写QTabWidget2、调用tabBar()【因为该方法是受保护的,所以要重写】 获得tabbar,保存为m_bar 成员变量m_bar = tabBar();3、m_bar->installEventFilter(this); 给tabbar添加到事假过滤器4、重写bool eventFilter(QObject *o
2015-07-02 22:59:51 3514
原创 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-07-02 22:39:20 375
原创 VC 这个程序可能安装不正确,和***不兼容,既,和windows兼容性设置
Windows,点击关闭之后,弹出兼容性报错,这是windows兼容性设置
2015-02-11 23:50:55 1758
翻译 VC 动态更新静态文本内容
void CTransstaDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CRect rect; GetDlgItem(IDC_STA)->GetWindowRect(&rect); ScreenToClient
2014-12-09 20:42:04 1172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人