C++
文章平均质量分 73
主要记录C++编程语言的一些方方面面
钱塘天梭
这个作者很懒,什么都没留下…
展开
-
Qt — Graphics/View框架
Qt的Graphics/View框架被用来存放、显示二维图形元素,处理那些对图形元素进行操作的交互命令。Qt 应用程序的图形界面包含各种控件,比如窗口、按钮、滚动条等。所有这些控件对象都具有一个共同的基类QWidget。一个QWidget对象是构成图形界面的基本单位。它能够在屏幕上绘制自己,能够处理鼠标、键盘事件。控件所占的屏幕区域总是矩形的。在屏幕上显示多个控件时会按照一定的顺序逐个显示。我们称先被显示的控件位于“底层”,后被显示的位于“顶层”。当多个控件所占区域重叠时,顶层控件会遮挡底层控件。原创 2023-04-23 15:00:56 · 1115 阅读 · 1 评论 -
qt - 隐式共享与d-pointer技术
一般情况下,一个类的多个对象所占用的内存是相互独立的。如果其中某些对象数据成员的取值完全相同,我们可以令它们共享一块内存以节省空间。只有当程序需要修改其中某个对象的数据成员时,我们再为该对象分配新的内存。这种技术被称为隐式共享(implicit sharing)。该技术被Qt库广泛使用,接下来,介绍该技术,并剖析QString的部分源代码以演示该技术的具体实现。通常情况下,与一个类密切相关的数据会被作为数据成员直接定义在该类中。原创 2023-04-12 17:11:59 · 1073 阅读 · 0 评论 -
标准库及Qt对字符串的处理
绝大多数C++程序都会涉及字符串的处理。字符串中的字符可能是我们很熟悉的ASCII字符,也可能是其他自然语言中的文字。为了表示这些文字,在计算机发展历史上出现了各种文字编码方案。下面介绍了各种字符编码方案,重点介绍被广泛接受的Unicode编码方案。标准C++定义了模板类来处理字符串。特化后的类string处理字符类型为char的字符串,而特化后的类wstring处理字符类型为wchar_t的字符串,后者可以用来存储Unicode编码的字符串。原创 2023-04-11 17:54:09 · 1791 阅读 · 0 评论 -
构造函数 和 析构函数 能否抛出异常
构造函数和析构函数能否抛出异常的讨论转载 2022-07-22 10:40:27 · 849 阅读 · 0 评论 -
Modern C++资源
Modern C++资源原创 2022-09-06 16:29:25 · 281 阅读 · 0 评论 -
构造函数为什么不能是虚函数
C++ 构造函数为什么不能是虚函数每个含有虚函数的类都有一个与之关联的虚函数表(vtbl),vtbl是在编译期就构建好的,而每个对象都有一个指向虚函数表的指针(vptr)。一个对象在实例化时,会先调用构造函数,也就是在这个时候,会将vptr赋值到对象中,当然,这是在运行时完成的。所有虚函数的调用,都要通过这个vptr找到vtbl中的虚函数地址来完成调用。当我们new一个对象时,第一步是申请对象所需要的内存,第二步就是调用构造函数完成初始化工作(vptr的初始化工作早于构造函数中的初始化列表)。试想,如原创 2022-05-25 01:05:44 · 512 阅读 · 0 评论 -
C语言中可变参数的用法——va_list、va_start、va_arg、va_end参数定义
转载于:https://blog.csdn.net/edonlii/article/details/8497704? C语言可变参简介 我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的: int printf( const char* format, ...); 它除了有一个转载 2022-05-27 16:08:41 · 1378 阅读 · 1 评论