当前位置: 首页 > news >正文

网站设计与网页制作心得体会文案发布平台

网站设计与网页制作心得体会,文案发布平台,做网站怎么接业务,政府网站标准化建设指针的高阶用法(C) 指针在C中是一个强大的工具,除了基础的指向变量和动态内存分配外,还有许多高阶用法可以提高代码的效率和灵活性。 函数指针 函数指针允许将函数作为参数传递或存储在数据结构中,常用于回调机制和…

指针的高阶用法(C++)

指针在C++中是一个强大的工具,除了基础的指向变量和动态内存分配外,还有许多高阶用法可以提高代码的效率和灵活性。

函数指针

函数指针允许将函数作为参数传递或存储在数据结构中,常用于回调机制和策略模式。
定义函数指针的语法:

// 定义一个指向函数的指针,该函数接受两个int参数并返回int
int (*funcPtr)(int, int);

使用示例:

int add(int a, int b) { return a + b; }
int subtract(int a, int b) { return a - b; }funcPtr = add; // 指向add函数
cout << funcPtr(3, 5); // 输出8funcPtr = subtract; // 指向subtract函数
cout << funcPtr(5, 3); // 输出2

指针与多态

通过基类指针调用派生类函数是实现运行时多态的核心机制。
示例:

class Base {
public:virtual void print() { cout << "Base" << endl; }
};class Derived : public Base {
public:void print() override { cout << "Derived" << endl; }
};Base* ptr = new Derived();
ptr->print(); // 输出"Derived",多态调用
delete ptr;

智能指针

智能指针(如std::unique_ptrstd::shared_ptr)自动管理内存,避免内存泄漏。

std::unique_ptr示例:

#include <memory>
std::unique_ptr<int> uptr(new int(10));
cout << *uptr; // 输出10
// 无需手动删除,超出作用域自动释放

std::shared_ptr示例:

std::shared_ptr<int> sptr1 = std::make_shared<int>(20);
std::shared_ptr<int> sptr2 = sptr1; // 共享所有权
cout << *sptr2; // 输出20

指针与数组的灵活操作

指针可以像迭代器一样遍历数组,支持指针算术运算。
示例:

int arr[] = {1, 2, 3, 4, 5};
int* p = arr; // 指向数组首元素
for (int i = 0; i < 5; ++i) {cout << *(p + i) << " "; // 输出1 2 3 4 5
}

指向指针的指针(双指针)

双指针常用于动态二维数组或修改指针本身。
动态二维数组示例:

int** matrix = new int*[3];
for (int i = 0; i < 3; ++i) {matrix[i] = new int[4]{i, i+1, i+2, i+3};
}
// 释放内存
for (int i = 0; i < 3; ++i) {delete[] matrix[i];
}
delete[] matrix;

指针与STL算法的结合

指针可以与STL算法一起使用,例如排序普通数组。
示例:

#include <algorithm>
int data[] = {5, 2, 9, 1, 5};
std::sort(data, data + 5); // 排序数组
for (int n : data) cout << n << " "; // 输出1 2 5 5 9

类型安全的指针转换

使用static_castdynamic_cast等操作符进行类型转换。
dynamic_cast示例(需多态类):

Base* b = new Derived();
Derived* d = dynamic_cast<Derived*>(b); // 安全向下转换
if (d) {d->print(); // 输出"Derived"
}
delete b;

这些高阶用法可以显著提升C++程序的灵活性和性能,但需谨慎处理内存和类型安全。

http://www.cadmedia.cn/news/16215.html

相关文章:

  • 网站建设 小知识太原seo排名外包
  • 邢台网站建设的公司如何自己制作一个网站
  • 新闻头条免费下载安装长治网站seo
  • 免费做ppt网站河南怎样做网站推广
  • 网站建设活动网页设计制作
  • 石家庄网站建设刘华杭州seo网络公司
  • 网站东莞优化建设爱站网排名
  • 廊坊宣传片制作公司深圳aso优化
  • 网站建设需求怎么提网站优化建议怎么写
  • 公司网站建设属于无形资产吗运营培训班学费大概多少
  • 在线旅游网站建设方案上海短视频seo优化网站
  • 制作网站建设的公司百度官方网站下载
  • 服务企业是什么aso优化报价
  • 黑马程序员ppt课件网络推广优化是干啥的
  • 微商城登录合肥网站seo费用
  • 建设购物网站流程图百度经验手机版官网
  • 辉玲建设集团有限公司网站百度seo教程视频
  • 什么公司做网站好小红书推广价目表
  • 企业管理软件7资阳市网站seo
  • 即墨网站建设公司百度云搜索引擎 百度网盘
  • 自学做网站可以赚钱吗手机百度app最新版下载
  • 泉州(晋江)网站建设北京seo设计公司
  • 莘县网站建设费用长春网站建设设计
  • 汕头建设吧 百度贴吧sem推广优化
  • 自己可以免费做网站吗seo排名培训公司
  • 国内建设黄色网站策划网络营销活动
  • 信息化建设与政府网站工作汇报陕西seo
  • 2022年近期舆情热点话题宁波seo教学
  • 建设银行重庆分行网站网络市场调研的方法
  • 校园网站集群建设手机端百度收录入口