随笔 - 54  文章 - 0  评论 - 45  阅读 - 45万 

随笔分类 -  软件编程

1
C++ 之 宏定义
摘要:宏在 C 语言中非常重要,但在 C++ 中却无甚大用,普遍的共识:尽量避免使用宏 C++ 之父 Bjarne 在《C++ Programming Language》中写到 Avoid macros 《Effective C++》 条款 2 Prefer const, enum, and inline 阅读全文
posted @ 2022-11-28 21:03 飞鸢逐浪 阅读(568) 评论(1) 推荐(1) 编辑
Qt 地址薄 (二) 添加地址
摘要:在上一篇 Qt 地址薄 (一) 界面设计 中,主要是实现了地址簿的界面,使用布局管理器进行元素的布局,并解释了 “子类化” 和 “所有权” 的概念。 本篇将在上面的基础上,在界面中新加三个 QPushButton 按钮,通过 “信号 - 槽函数” 机制,实现保存 Name 和 Address 内容的 阅读全文
posted @ 2018-01-13 15:04 飞鸢逐浪 阅读(1010) 评论(0) 推荐(1) 编辑
Qt 之 qwt 和 qwtpolar 的编译配置
摘要:1 Qwt Qwt 全称为 Qt Widgets for Technical Applications,用于专业技术领域的可视化显示,如下所示: 左图为二阶系统的频率响应;中图为德国小城 Friedberg 2007年的温度统计; 右图为2012年4月,Linux 各个发行版,Debian, Min 阅读全文
posted @ 2017-08-04 11:05 飞鸢逐浪 阅读(3140) 评论(0) 推荐(0) 编辑
Qt 之 QtConcurrent
摘要:本文以 Qt 中的 QtConcurrent::run() 函数为例,介绍如何将函数运行在单独的线程中。 1 QtConcurrent::run() QtConcurrent 是命名空间 (namespace),它提供了高层次的函数接口 (APIs),使所写程序,可根据计算机的 CPU 核数,自动调 阅读全文
posted @ 2017-05-11 16:27 飞鸢逐浪 阅读(43305) 评论(0) 推荐(7) 编辑
Qt 地址薄 (一) 界面设计
摘要:用 Qt 实现一个地址薄,功能包括:地址的添加、浏览、编辑、查找、输出文件等。 1 界面和元素 整个地址薄界面,为 AddressBook 类。其中的两个文本框和两个编辑栏,与 AddressBook 是 “包含” 关系 (has-a),故可将它们声明为类成员数据。 1) 文本框 Name 和 Ad 阅读全文
posted @ 2017-02-21 22:29 飞鸢逐浪 阅读(2142) 评论(0) 推荐(3) 编辑
《The Art of Readable Code》 笔记 (一)
摘要:基本原则:好的代码,能够减少 "别人" 理解它的时间。 "别人" 不仅指的是 其他人,也可能是 以后的自己 1 代码应易理解 1.1 符合习惯 下面两种形式等效,但方式2 更符合编码习惯,容易理解 // 方式 1 Node* node = list->head; if (node == NULL) 阅读全文
posted @ 2017-02-15 10:52 飞鸢逐浪 阅读(753) 评论(0) 推荐(0) 编辑
Qt 之 数字钟
摘要:本例展示了 QTimer 的使用,如何定时更新一个窗口部件 DigitalClock 1 QLCDNumber 类 QLCDNumber 是一种可将数字显示为类似 LCD 形式的窗口部件,它同 QLabel 一样,都继承自 QFrame,而 QFrame 继承自 QWidget 头文件 digita 阅读全文
posted @ 2016-11-18 18:42 飞鸢逐浪 阅读(2075) 评论(0) 推荐(0) 编辑
Qt 之 饼图
摘要:Qt 有许多模块,如 Core、GUI、Widgets、WebEngine、QML等。其中 Charts 模块,包含了一系列有关图表的组件,使用的是 Qt 的 Graphics View 框架,该模块以前只在商业版中才有。 从 Qt 5.7 开始,该模块通过 GPLv3 许可,已经对 Qt 开源版开 阅读全文
posted @ 2016-11-08 12:33 飞鸢逐浪 阅读(11039) 评论(0) 推荐(0) 编辑
Qt 之 入门例程
摘要:以 “Hello Qt” 为例,介绍如何建立一个 Qt 工程 1 QLabel 例程 QLabel 用来显示文本和图片,它继承自 QFrame (QFrame 继承自 QWidget) 1.1 Hello Qt #1 和 #2 标明头文件,也可用一个总的来代替: #include <QtWidget 阅读全文
posted @ 2016-10-17 17:21 飞鸢逐浪 阅读(10419) 评论(0) 推荐(0) 编辑
C++ 之 基础回顾(一)
摘要:1 exe 程序 1.1 最小 cpp 程序 int main(){} // minimal cpp 思考一: 为什么最小程序没有 return 语句? 答案: 见参考资料 1.2 Hello World #include <iostream> int main() { std::cout << " 阅读全文
posted @ 2016-09-27 19:42 飞鸢逐浪 阅读(1167) 评论(0) 推荐(2) 编辑
C++11 之 并发编程 (一)
摘要:未来芯片制造,如果突破不了 5nm 极限,则 CPU 性能的提升,可能会依赖于三维集成技术,将多个 CPU 核集成在一起,使得多核系统越来越普遍。 以前的 C++ 多线程,一是受限于平台,多借助于封装好的 APIs 来完成,例如:POSIX threads,Windows threads 等;二是受 阅读全文
posted @ 2016-09-04 13:12 飞鸢逐浪 阅读(5894) 评论(1) 推荐(0) 编辑
Linux 之 GCC 和 GDB
摘要:1 GCC = GNU C Compiler 1) pre-processing (预处理) 2) compiling (编译) 3) assembling (汇编) 4) linking (链接) 例 hello.c gcc 编译后执行程序如下: 2 GDB 1) 进入 2) 调试 [l] 查看文 阅读全文
posted @ 2016-08-02 23:37 飞鸢逐浪 阅读(1675) 评论(0) 推荐(0) 编辑
C++11 之 delete 和 default
摘要:1 特殊成员函数 一个类,当只有数据成员时,C98 的编译器会隐式的产生四个函数:缺省构造函数,析构函数,拷贝构造函数 和 拷贝赋值算子,称为特殊成员函数 class DataOnly { private: int data_; }; C++11 中,还有额外的两个特殊成员函数:移动构造函数 和 移 阅读全文
posted @ 2016-07-12 07:14 飞鸢逐浪 阅读(19596) 评论(2) 推荐(2) 编辑
从引用传递到设计模式 (下)
摘要:上一篇 从引用传递到设计模式 (上) 的文末,提到非虚拟接口 NVI 的实现,即将虚函数声明为保护型或私有型,借由模板函数模式来实现 。 园友 @KillU 看的很仔细,提出了一个问题:虚函数是 private 类型,继承可以么? 答案是:可以 5 实现权和调用权 <Effective C++> 中 阅读全文
posted @ 2016-06-02 05:33 飞鸢逐浪 阅读(772) 评论(0) 推荐(0) 编辑
从引用传递到设计模式 (上)
摘要:1 值传递 值传递是 拷贝实参的值 传给形参,常用于“小对象” (small objects) 调用下面函数,便是值传递: 小对象一般为:内置类型(built-in types),STL迭代器,函数对象类型(function object types) 只包含一对数据(x,y) 的 Point 类, 阅读全文
posted @ 2016-06-01 11:43 飞鸢逐浪 阅读(829) 评论(0) 推荐(1) 编辑
C++ 之 策略模式
摘要:1 会飞的鸭子 Duck 基类中,有成员函数 Swim() 和 Display() class Duck { public: void Swim(); virtual void Display(); }; 派生类野鸭 MallardDuck,橡皮鸭 RubberDuck 和 红头鸭 RedheadD 阅读全文
posted @ 2016-06-01 00:08 飞鸢逐浪 阅读(12355) 评论(2) 推荐(10) 编辑
C++11 之 override
摘要:1 公有继承 公有继承包含两部分:一是 "函数接口" (interface),二是 "函数实现" (implementation) 如 Shape 类中,三个成员函数,对应三种继承方式: class Shape { public: virtual void Draw() const = 0; // 阅读全文
posted @ 2016-05-11 20:58 飞鸢逐浪 阅读(109935) 评论(13) 推荐(18) 编辑
C++ 之 重载赋值操作符
摘要:1 重载 “op=” Widget 类中,有一个 Bitmap 型指针 pb,如果重载 "=",则需考虑以下方面 class Bitmap; class Widget { private: Bitmap *pb; // ptr to a heap-allocated object }; 1.1 链式 阅读全文
posted @ 2016-05-09 04:12 飞鸢逐浪 阅读(3202) 评论(0) 推荐(1) 编辑
C++11 之 nullptr
摘要:C++11 中,nullptr 是空指针,可用来给 (指向任意对象类型的) 指针赋值 广义整型 (integral types) = char, short, int, long, long long and their unsigned counterparts, and bool, wchar_ 阅读全文
posted @ 2016-05-04 21:42 飞鸢逐浪 阅读(3791) 评论(0) 推荐(3) 编辑
C++11 之 enum class
摘要:C++11 中,枚举的关键字为 enum class,即在 enum 后加 class,与 C++98 的 "plain" enum 区别如下: enum class Color { red, green, blue }; enum Color { red, green, blue }; 1 enu 阅读全文
posted @ 2016-04-28 18:16 飞鸢逐浪 阅读(3725) 评论(0) 推荐(4) 编辑

1
点击右上角即可分享
微信分享提示