找到 34423 篇文章 关于编程

C++ 中的 RAII 和智能指针

Anvi Jain
更新于 2019年7月30日 22:30:26

1K+ 次查看

C++ 中的 RAII RAII(资源获取即初始化)是 C++ 中的一种技术,用于控制资源的生命周期。它是一种类变体,与对象生命周期绑定。它将多个资源封装到类中,其中资源分配在对象创建期间由构造函数完成,资源释放则在对象销毁期间由析构函数完成。保证资源在对象存活期间一直被持有。示例 void file_write { static mutex m; // 保护文件访问的互斥锁 lock_guard lock(m); // 访问文件前锁定互斥锁 ofstream file("a.txt"); if (!file.is_open()) // 如果文件未打开 throw runtime_error("无法打开文件"); ... 阅读更多

C++ 中的指针、智能指针和共享指针

Nishtha Thakur
更新于 2019年7月30日 22:30:26

4K+ 次查看

指针 指针用于存储变量的地址。语法 类型 *指针; 初始化 类型 *指针; 指针 = 变量名; 函数 指针用于存储变量的地址。指针可以赋值为 null 值。指针可以通过引用传递。指针在栈上拥有自己的内存地址和大小。示例 在线演示 #include using namespace std; int main() { // 一个普通的整型变量 int a = 7; // 一个指针变量,保存 a 的地址。 int *p = &a; // 存储的值是变量 "a" 的值 cout

在 C/C++ 中删除 void 指针安全吗?

Smita Kapse
更新于 2019年7月30日 22:30:26

977 次查看

Void 指针是不与任何数据类型关联的指针。它指向存储器中的某个数据位置,意味着指向变量的地址。它也称为通用指针。在 C/C++ 中删除 void 指针是不安全的,因为 delete 需要调用它正在销毁的任何对象的析构函数,如果不知道类型,则无法做到这一点。这是一个 void 指针的简单示例 - 示例 在线演示 #include int main() { int a = 7; float b = 7.6; void *p; p = &a; printf("整型变量是 = %d", *( (int*) p) ); p = &b; printf("浮点型变量 ... 阅读更多

如何在 C/C++ 中声明指针变量?

Anvi Jain
更新于 2019年7月30日 22:30:26

429 次查看

指针用于存储变量的地址。要在 C/C++ 中声明指针变量,在其名称前使用星号 (*)。声明 *指针名 在 C 中 示例 在线演示 #include int main() { // 一个普通的整型变量 int a = 7; // 一个指针变量,保存 a 的地址。 int *p = &a; // 存储的值是变量 "a" 的值 printf("变量的值:%d", *p); // 它将打印变量 "a" 的地址 printf("变量的地址:%p", p); // 重新赋值。 *p = 6; printf("变量的 ... 阅读更多

如何在 C/C++ 中比较指针?

Nishtha Thakur
更新于 2019年7月30日 22:30:26

7K+ 次查看

如果指针指向同一个数组,我们可以比较指针。关系指针可以用来比较两个指针。指针不能相乘或相除。在 C 中 示例 在线演示 #include int main() { int *p2; int *p1; p2 = (int *)300; p1 = (int *)200; if(p1 > p2) { printf("P1 大于 p2"); } else { printf("P2 大于 p1"); } return(0); } 输出 P2 大于 p1 在 C++ 中 示例 #include using namespace std; int main() { int *p2; int *p1; p2 = (int *)300; p1 = (int *)200; if(p1>p2) { cout

C++ 中指向成员函数的函数指针

Smita Kapse
更新于 2019年7月30日 22:30:26

12K+ 次查看

在 C++ 中,当处理类或结构体的成员函数时,函数指针是使用对象指针或 this 调用来调用的。我们只能使用该类型的指针来调用该类的成员(或派生类),因为它们是类型安全的。示例 在线演示 #include using namespace std; class AB { public: int sub(int a, int b) { return a-b; } int div(int a, int b) { return a/b; } }; // 使用函数指针 int res1(int ... 阅读更多

C语言中的函数指针

Anvi Jain
更新于 2019年7月30日 22:30:26

4K+ 次查看

函数指针像普通指针一样指向代码。在函数指针中,函数名可以用来获取函数的地址。函数也可以作为参数传递,也可以从函数返回。声明 函数返回类型 (*指针名)(函数参数列表) 示例 在线演示 #include int subtraction (int a, int b) { return a-b; } int main() { int (*fp) (int, int)=subtraction; // 使用函数指针调用函数 int result = fp(5, 4); printf(" 使用函数指针得到的结果:%d",result); return 0; } 输出 使用函数指针得到的结果:1

在 C++ 中,通过指针传递比通过引用传递有什么好处?

Nishtha Thakur
更新于 2019年7月30日 22:30:26

458 次查看

指针可以接收空参数,而引用则不能。只有在想要传递“无对象”时才能使用指针。显式地通过指针传递允许我们在调用站点查看对象是通过引用还是通过值传递的。这些是通过指针传递和通过引用传递的简单示例 - 通过指针传递 示例 在线演示 #include using namespace std; void swap(int* a, int* b) { int c = *a; *a= *b; *b = c; } int main() { int m =7 , n = 6; cout

C/C++ 中指针的应用

Smita Kapse
更新于 2019年7月30日 22:30:26

1K+ 次查看

访问数组元素 我们可以使用指针访问数组元素。在 C 中 示例 在线演示 #include int main() { int a[] = { 60, 70, 20, 40 }; printf("%d", *(a + 1)); return 0; } 输出 70 在 C++ 中 示例 在线演示 #include using namespace std; int main() { int a[] = { 60, 70, 20, 40 }; cout

通过索引从 C++ std::vector<> 中删除元素?

Anvi Jain
更新于 2019年7月30日 22:30:26

318 次查看

可以通过以下方式从 C++ std::vector 中按索引删除元素 - 示例 在线演示 #include #include using namespace std; int main() { vector v; // 声明向量 // 将元素插入向量 v.push_back(-10); v.push_back(7); v.push_back(6); // 删除第一个元素 (v[0]) v.erase(v.begin() ); for (int i = 0; i < v.size(); i++) cout

广告
© . All rights reserved.