针对 C++ 找到 7345 篇文章

C++ 中的“结构体”和“类型定义的结构体”有什么区别?

Ankith Reddy
更新于 2019-07-30 22:30:22

817 次浏览

在 C++ 中,“结构体”和“类型定义的结构体”之间没有区别,因为在 C++ 中,所有结构体/联合/枚举/类声明都起着隐式类型定义的作用,只要该名称未被具有相同名称的其他声明所隐藏。尽管有一个微妙的区别,即类型定义不能被前向声明。因此,对于类型定义选项,你必须在类型定义在任何地方使用之前包含包含它的文件。

在 C/C++ 中,我们为什么应避免使用全局变量?

Ankitha Reddy
更新于 2020-06-24 06:10:51

4K+ 次浏览

在任何语言中,我们都应该避免使用全局变量,不仅限于 C++。这是因为这些变量会污染全局命名空间,而且在某些大型项目中由于可以从任意文件对其进行访问,从而可能引发一些难以发现的错误,并且可能在任意位置对其进行修改。以下列出这些原因的某些部分原因,说明为什么全局变量被认为不佳 − 任何部分代码都可以修改全局变量,这使得很难记住或推测每种可能的用途。全局变量可能无法进行访问控制。它不能局限于程序的某些部分。使用全局变量会引起非常...

C++ 中的前向声明是什么意思?

Abhinaya
已于 2020 年 2 月 12 日 06:14:19 更新

414 次观看

前向声明使得声明后面的代码知道有一个名称为 Person 的类。当它看到这些名称被使用时,可以使编译器得到满足。稍后,链接器会找到类的定义。class Person;void myFunc(Person p1){ // ... }Class Person { // 这里的类定义 } 因此,在此情况下,当编译器遇到 myFunc 时,它会知道在代码中的某处会遇到该类。它可以在代码使用该类并且该类被放置/包含在含有该类定义的代码之前的情况下进行使用。

在 C/C++ 中,int argc,char *argv[] 是什么意思?

Chandu yadav
已于 2020 年 6 月 24 日 06:12:03 更新

7 千次观看

argc 代表参数计数,argv 代表参数值。这些是主函数在开始执行时传递给它的变量。当我们运行一个程序时,我们可以向它传递参数,例如 -$ ./a.out hello示例这里 hello 是可执行文件的一个参数。可以在程序中访问这一参数。例如,#include using namespace std; int main(int argc, char** argv) { cout

C++ 中的常规转换与 static_cast 与 dynamic_cast

George John
已于 2020 年 6 月 24 日 06:13:58 更新

11 千次观看

static_cast − 用于正常的类型转换。它也是负责隐式类型强制转换的转换,并且也可以被明确调用。在诸如将 float 转换为 int、char 转换为 int 等情况下应该使用它。dynamic_cast − 该转换用于处理多态。仅在将变量转换为派生类时才需要使用它。在从基类转换为派生类时,只能在继承中使用它。常规转换 − 它是 C++ 中最强大的转换,因为它组合了 const_cast、static_cast 和 reinterpret_cast。但它也不安全...

向 C++ 函数传递二维数组

Govinda Sai
已于 2023 年 9 月 6 日 13:28:22 更新

44 千次观看

C++ 不允许将整个数组作为参数传递给函数。但是,通过指定数组的名称(没有索引),可以传递指向数组的指针。有三种方法可以将二维数组传递给函数 −指定二维数组的列的数量void processArr(int a[][10]) {    // 执行某些操作 }传递包含指针的数组void processArr(int *a[10]) {    // 执行某些操作 } // 调用时int *array[10]; for(int i = 0; i < 10; i++)    array[i] = new int[10]; processArr(array);传递指向指针的指针void processArr(int **a) {    // ... 了解更多

C++ 编程中的常见未定义行为

George John
更新时间:20200212 05:15:32

71 次浏览

下列是最常见的 C++ 编程中未定义行为的原因。注意,标准中已指定所有这些原因会导致未定义行为,在编写程序时应不惜一切代价避免这些原因。有符号整数溢出对空指针取消引用,“new” 分配的 size 为零时返回的指针、尚未明确初始化的指针、数组末尾位置以外位置处的指针。使用所引用对象超出范围或已被删除的指针执行指针算术,得到的结果超出了数组边界。将指针转换为与 ... 不兼容的对象 了解更多

C++ 中 struct 和 class 之间有什么不同?

Ramu Prasad
更新于 2019-07-30 22:30:22

263 次浏览

struct 的成员和基类默认是公开的,而 class 中的成员和基类默认是私有的。在其他方面,struct 和 class 在功能上是等同的。不过,由于语义关系,它们在不同的场合使用。struct 更像是一个用于表示数据的数据结构。另一方面,class 更倾向于功能特性。它模仿事物的形态和工作方式。

如何在 C++ 中检测整数溢出?

Sravani S
更新时间:20200624 06:01:55

1K+ 次浏览

唯一安全的方法是在溢出发生之前对其进行检查。不过,有一些黑客方法可以用于检查整数溢出。因此,如果你的目的是在无符号整数加法中检测溢出,你可以检查结果是否实际小于加的任何一个值。例如,unsigned int x, y; unsigned int value = x + y; bool overflow = value < x; // 或者,“value < y” 也应该起作用这是因为,如果 x 和 y 都是无符号整数,并且加法后发生溢出,它们的值就不能大于它们中的任何一个,因为 ... 了解更多

如何在 C++ 中将对象传递给函数?

Ankitha Reddy
更新于 2019-07-30 22:30:22

677 次浏览

有四种将对象传递给函数的方式。让我们假设你有类 X 并想将其传递给函数 fun,然后 − 按值传递,它在函数作用域中创建对象的一个浅层局部副本。你在那里修改的内容不会反映给传递给它的对象。例如,声明 void fun(X x);调用 X x;fun(x);按引用传递,它将对象的引用传递给函数。你在那里修改的内容将反映在传递给它的对象中。没有副本...... 阅读更多

广告
© . All rights reserved.