找到关于编程的34423 篇文章

解释 C++ 单例设计模式。

Jennifer Nicholas
更新于 2020-06-24 05:42:05

16K+ 次浏览

单例设计模式是一种软件设计原则,用于将类的实例化限制为一个对象。当需要恰好一个对象来协调整个系统的操作时,这非常有用。例如,如果您使用的是将日志写入文件的日志记录器,则可以使用单例类来创建这样的日志记录器。您可以使用以下代码创建一个单例类 - 示例 #include using namespace std; class Singleton { static Singleton *instance; int data; // 私有构造函数,因此无法创建对象。 ... 阅读更多

C++ 中何时应该使用 static_cast、dynamic_cast、const_cast 和 reinterpret_cast?

V Jyothi
更新于 2020-06-23 13:57:11

3K+ 次浏览

const_cast 可用于删除或添加变量的 const 属性。如果需要从变量中添加/删除 const 属性,这将非常有用。static_cast 用于普通类型转换。这也是负责隐式类型强制转换的转换,也可以显式调用。您应该在将浮点数转换为整数、字符转换为整数等情况下使用它。dynamic_cast 用于处理多态性。只有在转换为派生类时才需要使用它。这专门用于继承中,当您从基类转换为派生类时。reinterpret_cast 是 ... 阅读更多

在哪里可以找到当前的 C 或 C++ 标准文档?

Nishtha Thakur
更新于 2020-06-23 13:59:38

90 次浏览

您可以在 ANSI 网上商店找到当前的 C 标准文档。 https://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2FISO%2FIEC+9899-2012 您可以在 ISO C++ 网站上找到当前的 C++ 标准文档以购买 -  https://www.iso.org/standard/68564.html ISO C++ 标准的工作草案也可在  https://isocpp.org/std/the-standard 获取

什么是智能指针,以及何时应该在 C++ 中使用它?

George John
更新于 2019-07-30 22:30:21

319 次浏览

智能指针是一个包装“原始”(或“裸”)C++ 指针的类。它用于管理指针指向的资源。例如,如果对该内存位置的引用丢失了。它有点像垃圾收集器。有多种智能指针类型。您几乎总是应该使用智能指针。这是因为使用指针的主要痛点是手动内存管理和内存泄漏。智能指针试图消除这两者。如果您实际上不想执行这两者中的任何一项,则应该使用智能 ... 阅读更多

何时可以在 C/C++ 中使用前置声明?

Priya Pallavi
更新于 2020-02-11 10:43:13

174 次浏览

前置声明让代码后面的声明知道存在名为 Person 的类。当编译器看到这些名称被使用时,这会满足编译器。稍后,链接器将找到类的定义。示例类 Person; void myFunc(Person p1) {   // ... } 类 Person {   // 类的定义在这里 };因此,在这种情况下,当编译器遇到 myFunc 时,它将知道它将在代码的某个地方遇到此类。这可以在使用类的代码放在/包含在包含类定义的代码之前的情况下使用。

什么是 C/C++ 中的数组衰减?

Nikitha N
更新于 2020-02-11 10:41:41

125 次浏览

数组和指针在 C/C++ 中的工作方式非常相似。但有一些细微的差别。例如,sizeof 运算符在两者上的工作方式大相径庭。当您将数组转换为指针时,示例 #include int main() {   const int a[] = { 2, 3, 5, 7, 11 };   const int* p = a;   std::cout

为什么 C/C++ 中结构体的 sizeof 值不等于每个成员 sizeof 值之和?

Chandu yadav
更新于 2020-02-11 10:37:42

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

什么是复制省略和返回值优化?

Smita Kapse
更新于 2020-02-11 10:36:03

362 次浏览

复制省略是由大多数编译器实现的一种优化,用于防止在某些情况下进行额外的(可能代价高昂的)复制。因此,如果您有一些创建的对象未使用或没有副作用的代码,示例结构 MyStruct {   MyStruct() {}   MyStruct(const MyStruct&) {     std::cout

C++ 中指针变量和引用变量有什么区别?

George John
更新于 2020-06-23 13:49:38

1K+ 次浏览

引用当变量声明为引用时,它就成为现有变量的另一个名称。语法类型 &新名称 = 现有名称;初始化类型 &指针;指针 = 变量名;指针指针用于存储变量的地址。语法类型 *指针;初始化类型 *指针;指针 = 变量名;引用和指针之间的主要区别是 -引用用于以另一个名称引用现有变量,而指针用于存储变量的地址。引用不能赋值为 null 值,但指针可以。引用变量可以通过值引用,而指针可以被引用但通过引用传递引用必须 ... 阅读更多

如何在 C++ 中使用数组?

Srinivas Gorla
更新于 2020-02-11 10:32:26

294 次浏览

数组是一系列相同类型的元素,这些元素放置在连续的内存位置中,可以通过向唯一标识符添加索引来单独引用它们。要在 C++ 中使用数组,您需要首先声明它,例如,int arr[10];这声明了一个大小为 10 的 int 类型数组。这可以在连续的内存中存储 10 个整数。要引用其任何元素,您需要使用数组访问运算符并提供要访问的元素的索引。C++ 数组中的索引从 0 开始。因此,在 ... 阅读更多

广告