16K+ 阅读量
单例设计模式是一种软件设计原则,用于将类的实例化限制为一个对象。当需要一个对象来协调整个系统中的操作时,这很有用。例如,如果您正在使用一个将日志写入文件的记录器,您可以使用单例类来创建这样的记录器。您可以使用以下代码创建单例类 -示例#include using namespace std; class Singleton { static Singleton *instance; int data; // 私有构造函数,因此无法创建对象。 ... 阅读更多
3K+ 阅读量
const_cast可以用来移除或添加变量的 const。如果需要从变量中添加/移除 const,这将很有用。static_cast这用于正常的/普通的类型转换。这也是负责隐式类型强制转换的转换,也可以显式调用。您应该在将 float 转换为 int、char 转换为 int 等情况下使用它。dynamic_cast此转换用于处理多态性。只有在转换为派生类时才需要使用它。这仅在继承中使用,当您从基类转换为派生类时。reinterpret_cast这 ... 阅读更多
90 阅读量
您可以在 ANSI 网上商店找到当前的 C 标准文档。 https://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2FISO%2FIEC+9899-2012您可以在 ISO C++ 网站上找到当前的 C++ 标准文档以购买 - https://www.iso.org/standard/68564.htmlISO C++ 标准的工作草案也可在 https://isocpp.org/std/the-standard 上找到
319 阅读量
智能指针是一个包装“原始”(或“裸露”)C++ 指针的类。它用于管理指针指向的资源。例如,如果对该内存位置的引用丢失了。它有点像垃圾收集器。有多种智能指针类型。您几乎应该始终使用智能指针。这是因为使用指针的主要痛点是手动内存管理和内存泄漏。智能指针试图消除这两者。如果您在实践中不想执行这两者中的任何一项,则应使用智能 ... 阅读更多
174 阅读量
前向声明让后续代码知道存在名为 Person 的类。当编译器看到这些名称被使用时,这会满足编译器。稍后,链接器将找到类的定义。 示例类 Person; void myFunc(Person p1) { // ... } 类 Person { // 类的定义在这里 };因此,在这种情况下,当编译器遇到 myFunc 时,它将知道它将在代码中的某个地方遇到这个类。这可以在使用类的代码放置/包含在包含类定义的代码之前的情况下使用。
125 阅读量
数组和指针在 C/C++ 中的工作方式非常相似。但有一些细微的差别。例如,sizeof 运算符在这两者上的工作方式完全不同。当您将数组转换为指针时,示例#include int main() { const int a[] = { 2, 3, 5, 7, 11 }; const int* p = a; std::cout
167 阅读量
结构体 sizeof 与其每个成员 sizeof 之和的差异是由于字节填充和对齐。C/C++ 中的每种数据类型都有一个对齐要求。处理器将具有其架构的处理字长。在 32 位机器上,处理字大小将为 4 字节或 32 位。例如,如果您有以下结构 -示例#include using namespace std; struct X { char b[3]; int c; }; int main() { char b[3]; int c; int total = sizeof(b) + sizeof(c); cout
362 阅读量
复制省略是由大多数编译器实现的一种优化,用于在某些情况下防止额外的(可能代价高昂的)复制。因此,如果您有一些正在创建的对象未被使用或没有副作用的代码, 示例结构体 MyStruct { MyStruct() {} MyStruct(const MyStruct&) { std::cout
1K+ 阅读量
引用当变量被声明为引用时,它成为现有变量的另一个名称。语法 类型 &新名称 = 现有名称;初始化类型 &指针; 指针 = 变量名称;指针指针用于存储变量的地址。语法类型 *指针;初始化类型 *指针; 指针 = 变量名称;引用和指针之间的主要区别在于 -引用用于以另一个名称引用现有变量,而指针用于存储变量的地址。引用不能分配空值,但指针可以。引用变量可以通过值传递引用,而指针可以通过引用传递引用引用必须 ... 阅读更多
294 阅读量
数组是一系列相同类型的元素,放置在连续的内存位置中,可以通过向唯一标识符添加索引来单独引用。要在 C++ 中使用数组,您需要先声明它,例如,int arr[10];这声明了一个大小为 10 的 int 类型数组。这可以在连续的内存中存储 10 个整数。要引用其任何元素,您需要使用数组访问运算符并为其提供要访问的元素的索引。C++ 数组中的索引从 0 开始。因此,在 ... 阅读更多