Qt_1 Qt Creator 是 Qt 公司生产的 IDE。 它集成了多个工具,包括代码编辑器、图形 UI(GUI)设计器、编译器、调试器、Qt 设计器、Qt 快速设计器和 Qt 助手等。 Qt Designer 帮助设计基于小部件的 GUI,而 Qt Quick Designer 提供了在设计模 ...
概述:拷贝并交换(Copy-and-Swap)是C++编程中的惯用法,用于实现赋值操作符和确保异常安全的拷贝构造函数。其核心思想是通过拷贝构造函数创建临时副本,再通过交换确保操作的异常安全性。这种方法在C++11之前和之后都适用,但在C++11中,移动语义和右值引用的引入使得实现可以更加高效。 拷贝 ...
概述:在C++中,遍历由空格分隔的字符串的单词有多种方法,包括使用`std::istringstream`、手动遍历字符和正则表达式。其中,`std::istringstream`是简单高效的选择,通过流提取单词。手动遍历字符较为繁琐,正则表达式方法更灵活但可能有性能开销。根据实际需求选择方法,本文 ...
目录条款17:让接口容易被正确使用,不易被误用(Make interfaces easy to use correctly and hard to use incorrectly)限制类型和值规定能做和不能做的事提供行为一致的接口条款19:设计class犹如设计type(Treat class de ...
类模板应用 explicit explicit 是一个关键字,用于指定该构造函数是显式构造函数。在C++中,当一个类的构造函数只有一个参数时,它可以被用于隐式类型转换,这可能会导致意想不到的行为和潜在的错误。为了避免这种情况,可以使用 explicit 关键字来声明该构造函数,表示禁止隐式类型转换, ...
目录条款13:以对象管理资源(Use objects to manage resources)关键想法智能指针条款14:在资源管理类中小心copying行为(Think carefully about copying behavior in resource-managing classes)条款1 ...
C++ 多态 多态(Polymorphism)是面向对象编程(OOP)的核心概念之一,它允许对象在相同操作下表现出不同的行为。在 C++ 中,多态通常通过继承和虚函数来实现。 理解多态 想象一个场景,你有一个动物园,里面有各种动物,如猫、狗、鸟等。每个动物都有自己的叫声。使用面向对象编程,我们可以创 ...
最近在翻《c++函数式编程》的时候看到有一小节在说c++14新增了“菱形运算符”。我寻思c++里好像没什么运算符叫这名字啊,而且c++14新增的功能很少,我也不记得有添加这种语法特性。一瞬间我有些怀疑我的记忆了,所以为了查漏补缺,我写了这篇文章。 什么是菱形运算符 这个概念在Java里比较多见: L ...
C++ 异常处理 C++ 异常处理机制允许程序在运行时处理错误或意外情况。它提供了捕获和处理错误的一种结构化方式,使程序更加健壮和可靠。 异常处理的基本概念: 异常: 程序在运行时发生的错误或意外情况。 抛出异常: 使用 throw 关键字将异常传递给调用堆栈。 捕获异常: 使用 try-catch ...
今天用VS2019编译一个在VS2008下Coding的工程的时候,VS给出了一堆链接错误信息,如下图所示的一些错误: Error 47 error LNK2019: unresolved external symbol "public: __thiscall std::_Mutex::~_Mute ...
目录条款05:了解C++默默编写并调用哪些函数(Know what functions C++ silently writes and calls)自动生成的函数举例说明条款06:若不想使用编译器自动生成的函数,就该明确拒绝(Explicitly disallow the use of compil ...
目录条款01:视C++为一个语言联邦(View C++ as a federation of languages)条款02:尽量以const、enum、inline替换#define(Prefer consts, enums, and inlines to #define)替换原因两种特殊常量形似函 ...
abstract抽象的 abstraction抽象性、抽象件 access访问 access level访问级别 access function访问函数 adapter适配器 address地址 address-of operator取地址操作符 aggregation聚合 algorithm算法 ...
class_template 类模板和函数模板的定义和使用类似,我们已经进行了介绍。有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同。类模板用于实现类所需数据的类型参数化 template<class NameType, class AgeType> class Person { publi ...
C++ 多级继承 多级继承是一种面向对象编程(OOP)特性,允许一个类从多个基类继承属性和方法。它使代码更易于组织和维护,并促进代码重用。 多级继承的语法 在 C++ 中,使用 : 符号来指定继承关系。多级继承的语法如下: class DerivedClass : public BaseClass1 ...
C总结与剖析:关键字篇 目录C总结与剖析:关键字篇变量1.变量:内存上的某个位置开辟的空间2.变量的初始化3.为什么要有变量4.局部变量与全局变量5.变量的大小由类型决定6.任何一个变量,内存赋值都是从低地址开始往高地址1.1 关键字auto1.2 关键字register什么样的变量可以采用regi ...
本系列深入分析编译器对于C++虚函数的底层实现,最后分析C++在多态的情况下的性能是否有受影响,多态究竟有多大的性能损失。 ...
写这个随笔说一下C++的static_cast和dynamic_cast用在子类与父类的指针转换时的一些事宜。首先,【static_cast,dynamic_cast】【父类指针,子类指针】,两两一组,共有4种组合:用 static_cast 父类转子类、用 static_cast 子类转父类、使用 ...
C++ 访问说明符 访问说明符是 C++ 中控制类成员(属性和方法)可访问性的关键字。它们用于封装类数据并保护其免受意外修改或滥用。 三种访问说明符: public:允许从类外部的任何地方访问成员。 private:仅允许在类内部访问成员。 protected:允许在类内部及其派生类中访问成员。 示 ...
本系列深入分析编译器对于C++虚函数的底层实现,最后分析C++在多态的情况下的性能是否有受影响,多态究竟有多大的性能损失。 ...