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

网站中英文转换js品牌营销推广要怎么做

网站中英文转换js,品牌营销推广要怎么做,网设,dm建站系统函数和函数指针 void hello(int x) {std::cout << "Hello " << x << std::endl; }这个函数叫 hello&#xff0c;它有一个地址&#xff08;就像房间有门牌号一样&#xff09;。 我们想用一个变量来保存这个地址&#xff0c;这个变量就是“函数指针”…

函数和函数指针

void hello(int x) {std::cout << "Hello " << x << std::endl;
}

这个函数叫 hello,它有一个地址(就像房间有门牌号一样)。

我们想用一个变量来保存这个地址,这个变量就是“函数指针”。
给函数指针赋值

void hello(int x) {std::cout << "Hello " << x << std::endl;
}int main() {void (*ptr)(int);     // 定义一个函数指针ptr = hello;          // 把函数 hello 的地址赋给 ptrptr(5);               // 调用 ptr 指向的函数,等价于 hello(5)return 0;
}

✅ 关键点
hello 是函数名,它本身就表示“函数的地址”
ptr = hello; 就是把 hello 的地址存到 ptr 中
ptr(5); 就是“调用 ptr 指向的那个函数”,和 hello(5) 效果一样

加上 typedef

现在我们觉得 void (*ptr)(int) 太长、太难写,想给它起个简单名字。

typedef void (*Callback)(int);

这行代码的意思是:

“从现在起,Callback 是一个类型别名,它等价于 void (*)(int) 这种函数指针类型。”
用新名字来定义变量

#include <iostream>// 定义一个新类型:Callback
typedef void (*Callback)(int);// 一个符合这个类型的函数
void greet(int x) {std::cout << "Hello: " << x << std::endl;
}int main() {Callback ptr;      // 等价于 void (*ptr)(int);ptr = greet;       // 把函数地址赋给 ptrptr(5);            // 调用 greet(5)return 0;
}

回调函数

#include <iostream>// 1. 定义回调函数的类型:返回 void,参数是 int
typedef void (*Callback)(int);// 2. 一个普通函数,我们将用它作为回调
void myCallback(int x) {std::cout << "回调被调用,x = " << x << std::endl;
}// 3. 主函数:它接收一个“回调函数”作为参数
void doWork(int data, Callback cb) {// 做一些工作...std::cout << "正在处理数据..." << std::endl;// 工作完成,调用回调函数cb(data);  // 这就是“回调”:调用你传进来的函数
}// 4. 主程序
int main() {// 调用 doWork,并把 myCallback 作为回调传进去doWork(100, myCallback);return 0;
}

再举一个简单的例子:

#include <iostream>// 1. 定义一个回调函数类型(可选,用 typedef 简化)
//typedef void (*Callback)(int);// 或者用更现代的写法(C++11 起):
using Callback = void (*)(int);// 2. 一个实际的回调函数(打印数字)
void printNumber(int value) {std::cout << "收到数值: " << value << std::endl;
}// 3. 一个接受回调函数的函数
void doSomething(int x, Callback callback) {std::cout << "正在处理..." << std::endl;// 做一些事情...// 调用回调函数callback(x);
}// 4. 主函数
int main() {// 传递 printNumber 作为回调doSomething(42, printNumber);return 0;
}

通过function<>的例子:

#include <iostream>
#include <functional>// 使用别名简化类型(可读性更好)
using Callback = std::function<void(int)>;void doSomething(int x, const Callback& callback) {std::cout << "正在处理..." << std::endl;// 可选:检查 callback 是否有效(防止空调用)if (callback) {callback(x);} else {std::cerr << "警告:回调函数为空!" << std::endl;}
}int main() {doSomething(42, [](int value) {std::cout << "Lambda 回调: " << value << std::endl;});return 0;
}

std::function<void(int)>
是一个 C++ 标准库提供的“通用可调用对象包装器”,它可以保存、复制、调用任何“和 void(int) 类型匹配的可调用对象”。

#include <iostream>
#include <functional>// 定义一个类型别名,简化写法
using Callback = std::function<void(int)>;// 1. 普通函数
void normal_func(int x) {std::cout << "普通函数: " << x << std::endl;
}// 2. Lambda 表达式(匿名函数)
auto lambda = [](int x) {std::cout << "Lambda: " << x << std::endl;
};// 3. 函数对象(仿函数)
struct Functor {void operator()(int x) {std::cout << "函数对象: " << x << std::endl;}
};int main() {Callback cb;// ✅ 都可以赋值给 std::function<void(int)>cb = normal_func;     // 普通函数cb(1);cb = lambda;          // Lambdacb(2);cb = Functor();       // 函数对象cb(3);return 0;
}
http://www.dtcms.com/a/477293.html

相关文章:

  • 郑州高校网站建设服务公司企业网站备案怎么搞
  • php网站框架动漫制作专业电脑配置要求
  • 阳江网站设计微信聚合聊天crm系统
  • 中国四大门户网站分别是东营免费网站制作
  • 江门网站建设方案外包阿里云怎么放多个网站
  • 网站创建风格电子商务官方网站
  • 网站更改logo嘉兴备案网站
  • 网站建设有什么服务百度seo快速提升排名
  • 新河seo怎么做整站排名做kegg的网站
  • 阿里巴巴国际站网页版制作网站的模板下载
  • 网站建设需要注意的关键细节wordpress主题如何破解
  • asp.net网站安装顺序网站建设外包公司方案
  • 龙岗做网站公司szaow网站备案阿里云流程
  • 网站制作jian she浙江房产信息网查询
  • 怎么免费建立自己网站广州南站在哪个区
  • pi币最新消息seo实战指导
  • 网站推广策略什么样的网站需要备案
  • 家具网站开发设计论文优化网站结构一般包括
  • 网站建设和信息更新的通知网站加载慢怎么办
  • 网站建设周期表电影院订票网站开发
  • 新手建站论坛网站 搭建 公司
  • 互联网站产品开发的流程百度广告推广费用一年多少钱
  • 家庭宽带做网站江门免费建站公司
  • 网站建设制作有那些重庆营销型网站建设
  • 网站名 注册中视频自媒体平台
  • 建设银行不弹出网站移动开发的现状和前景
  • 自己做网站一定要实名吗wordpress feed页面在哪儿
  • 网站定制报价表wordpress主题超限
  • 秦皇岛营销式网站电商平台链接怎么填写
  • 英文网站定制公司wordpress免费相册插件