标签:

进阶

虚继承以及一些技巧

by 豆子

原文出自:http://www.codeproject.com/Tips/1023429/The-Virtual-Inheritance-and-Funny-Tricks 简介 为解决钻石问题,C++ 引入了虚继承,改变了子类调用父类构造函数的方式。这种“副作用”对某些不同寻常的类实现非常有用。 虚继承 虚继承的引入主要是为了解决多继承环境下有歧义的层次组合问题(通常被称为“钻石问题”)。例如,F ...

0 个评论 204 次阅读

之前有朋友问起一个看起来比较“奇怪”的问题,记录如下。因为这个问题豆子也曾经遇到,初学者很有可能感到迷惑。 当时的代码是这样子的: 我们主要关心的是几个toStdString()函数出现的位置。前面两个语句(第2行和第4、5行)看似是一样的行为,其实不然。当你分别运行这两段代码的时候会发现,第一段很可能会出现段错误,第二段却能正常运行。而第一段和第三段又非常类似,不同之处在于前者是直接获得一个ch ...

7 评论 264 次阅读

原文地址:http://blog.davidedmundson.co.uk/node/72 原文作者致力于将 QtQuickControls 运行在 KDE 环境。现在提出一个新的问题:在一个新的工程中,我们应该使用哪种技术?Qt Widgets 还是 QtQuickControls? 注意,本文并不是一个“信达雅”的翻译,而是基于原文的观点添加了很多“作料”。

6 评论 247 次阅读

这篇文章来自于一次讨论:https://www.devbean.net/2013/01/qt-study-road-2-model-view/#comment-17532。关于究竟是在堆上还是在栈上创建对象,可能很多初学者感到迷惑。我想可以把这部分内容拿出来详细介绍一下。现在,假设你已经清楚什么是堆,什么是栈。

6 评论 247 次阅读

参考链接:http://www.pixelstech.net/article/1390482950-do-%7B-%7D-while-%280%29-in-macros 虽然我们不建议使用宏,但是,作为一个语言特性,有时宏是不可避免的。对于这种情况,正确使用宏尤其重要。它可以帮助你减少很多重复性工作。但是,如果你没有仔细地定义,宏绝对能把你逼疯。在很多 C/C++ 程序中,你会看到类似如下定义的宏 ...

2 评论 229 次阅读

前面几章我们介绍了如何对数据库进行操作以及如何使用图形界面展示数据库数据。本章我们将介绍如何对数据库的数据进行编辑。当然,我们可以选择直接使用 SQL 语句进行更新,这一点同前面所说的 model/view 的编辑没有什么区别。除此之外,Qt 还为图形界面提供了更方便的展示并编辑的功能。

13 评论 276 次阅读

原文地址:http://woboq.com/blog/how-qt-signals-slots-work-part2-qt5.html 这是解释 Qt 信号槽机制的上一篇文章的后续。在上一篇文章中,我们了解到旧的信号槽语法的一般原理以及如何实现的。在本章,我们将看看 Qt5 基于函数指针的新语法是如何实现的。 Qt5 的新语法 新语法看起来是这样的: 为什么要有新语法? 我们已经在介绍新语法的文章 ...

4 评论 241 次阅读

Qt 信号槽的实现

by 豆子

原文地址:http://woboq.com/blog/how-qt-signals-slots-work.html Qt 因其信号槽机制闻名遐迩。但是信号槽是怎样工作的?本文将解释 QObject 和 QMetaObject 的内部实现,以及探索如何在这种机制下实现信号槽。 本文将展示 Qt5 的部分代码,不过有时会为格式化以及简洁性而有所修改。

5 评论 233 次阅读

C++11 的重大改变

by 豆子

原文出处:http://blog.smartbear.com/software-quality/bid/167271/The-Biggest-Changes-in-C-11-and-Why-You-Should-Care 自从 C++ 语言第一次迭代已经过去 13 年。C++ 标准委员会成员 Danny Kalev 在本文中解释了这门编程语言有怎样的改进,以及如何帮助你编写更好的代码。 C++ 的 ...

7 评论 292 次阅读

Git reset

by 豆子

本文出处:http://robinnagpal.wordpress.com/2012/08/18/git-reset/ Git 让我们能够处理历史版本,其中之一就是 git reset 命令。git reset 有许多不同的参数,能够实现以下功能: 我们想让文件一直,但是减少提交的次数; 让工作目录处理一个特定的版本; 移除或者丢弃先前的提交。 为了达到以上目的,git 提供了 reset 命令, ...

0 个评论 202 次阅读

关于我

devbean

devbean

豆子,生于山东,定居南京。毕业于山东大学软件工程专业。软件工程师,主要关注于 Qt、Angular 等界面技术。

主题 Salodad 由 PenciDesign 提供 | 静态文件存储由又拍云存储提供 | 苏ICP备13027999号-2