随笔分类 -  C/C++

C++,集语言之大成者。
摘要:观察者模式(obsever pattern)又名发行/订阅模式(publish-subscribe pattern),是事件驱动模型的简化版本,也是我们熟知的MVC架构的核心部分。 下面以博客园订阅博客为例,窥探一下观察者模式蕴含的奥秘: 当博主发表新文章的时候,即博主状态发生了改变,那些订阅的读者 阅读全文
posted @ 2016-12-18 18:42 Acelit 阅读(770) 评论(0) 推荐(0) 编辑
摘要:首先请大家思考一个问题:以下6个问题可否共享一段代码? 答案是肯定的。采用泛型编程对问题进行抽象,抽取出以上问题的共性即算法(algorithm)、容器(container)和迭代器(itera),这也是STL(Standard Template Library, 标准模板库)的三要素。 其中,算法 阅读全文
posted @ 2016-12-17 22:34 Acelit 阅读(513) 评论(0) 推荐(2) 编辑
摘要:以静态文本为例,分享一下怎么修改文本字体、大小、颜色、背景等参数。其他文本、控件等可参照修改。 1.修改字体、大小 这个很简单,首先在Dlg类中声明一个CFont类型的成员变量: 然后在类的初始化函数OnInitDialog()中添加以下两行代码: 2.改变编辑框文本颜色、背景颜色 右键点击该对话框 阅读全文
posted @ 2016-12-02 18:37 Acelit 阅读(35744) 评论(0) 推荐(2) 编辑
摘要:0 引言:相比于MFC只要直接在VS上搭建,Qt的配置就相对复杂了,Qt新手上路,老司机绕道,记录下配置Qt的整个过程,直到最终用C++输出“hello world”。 搭建环境:Win10 + qt-3.6.1 + MinGW-gcc440_1 + qt-4.8.5-mingw 1.下载并安装软件 阅读全文
posted @ 2016-11-30 22:03 Acelit 阅读(674) 评论(0) 推荐(0) 编辑
摘要:0引言:在学习C++时,碰到过以下四个以“虚”命名的概念,在系统理解这些高大上的术语后,才发现它们果真“名不虚传”。 为了方便捋清楚这些概念和之间的相互关系,本人对其进行了系统的总结,欢迎讨论。 1.虚基类 (1)作用:间接派生类只保存共同基类的一份成员(数据成员/函数成员),优化存储空间。 (2) 阅读全文
posted @ 2016-11-30 17:13 Acelit 阅读(1391) 评论(1) 推荐(2) 编辑
摘要:派生类构造函数与析构函数 1.派生类构造函数: 派生类不能继承基类的构造函数,必须自己定义构造函数进行新增数据成员初始化工作,如果想同时初始化基类数据成员,必须调用基类构造函数。 (1)简单派生类构造函数: 输出: (2)包含子对象的派生类构造函数: 输出: 几点注意: 1).在调用派生类构造函数之 阅读全文
posted @ 2016-11-30 16:39 Acelit 阅读(10774) 评论(0) 推荐(0) 编辑
摘要:想把类从主函数文件中分离出来: 编译时出现了undefied refenence to...问题,代码如下: 编译时出现以下错误: 如果将student.cpp中的函数放到类中,则不会出错! A:student.cpp要添加到当前项目里,和main.cpp一起编译成功以后,才能链接在一起生成目标程序 阅读全文
posted @ 2016-11-27 21:39 Acelit 阅读(498) 评论(0) 推荐(0) 编辑
摘要:先考虑一种情况,对一个已知对象进行拷贝,编译系统会自动调用一种构造函数——拷贝构造函数,如果用户未定义拷贝构造函数,则会调用默认拷贝构造函数。 执行结果:调用一次构造函数,调用两次析构函数,两个对象的指针成员所指内存相同,这会导致什么问题呢? name指针被分配一次内存,但是程序结束时该内存却被释放 阅读全文
posted @ 2016-11-27 21:30 Acelit 阅读(56728) 评论(1) 推荐(5) 编辑
摘要:1.如何编写头文件.h? 2.如何在C++文件使用C库? 更复杂版本: 3.#undef作用? 在后面取消以前定义的宏定义;一般使用#undef取消一个宏定义后可以再次对其进行新的定义。 4.屏蔽不同芯片数据类型位数差异,如int是16还是32位?统一使用int16_t/int32_t来定义变量。 阅读全文
posted @ 2016-11-23 16:47 Acelit 阅读(630) 评论(0) 推荐(0) 编辑
摘要:Q1:什么是偏移量? A:结构体变量中成员的地址和结构体变量地址之差。可以用offsetof(type, member)宏来确定成员的实际位置(定义于stddef.h),其中type是结构体类型,member是成员名。可知:第一个成员的偏移量为0,最后一个成员的偏移量加上最后一个成员的大小却不一定等 阅读全文
posted @ 2016-11-21 11:59 Acelit 阅读(6129) 评论(0) 推荐(0) 编辑