news 2026/7/12 23:12:23

2026/3/21、

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026/3/21、

一、如何处理多返回值

7、*结构体*

/////////////////////////////////////

1、c++中方法在参数中增加多个引用,用他们接住要返回的值

void classes (int a,int b,std::string& outc,std::string& outd)

{

outc=a+b;

outd=c-b;

}

2、new一个字符串数组接住

std::string* classe (int a,int b,std::string& outc,std::string& outd)

{

std::string c = a+b;

std::string d = a+b;

return new std::string[]{c,d};

}

3、

4、

5、

6、

二、模板

模板templates


1、无模板(重载)

2.有模板

#include<iostream>
#include<string>
using namespacestd;

template<typenameT>//template只是一个模板,只有在调用函数时,这个函数才会被编译器创建
voidPrint(Tvalue)
{
cout <<
value<< endl;
}

template<intN>//整数模板
classTafei
{
private:
intnumers[N];
public:
intGetSize()const{returnN; }
};

template<typenameA,intB>
classMiao
{
private:
Anumers[B];
public:
intGetSize()const{returnB; }

};

intmain() {
Print(1);
//自动推导类型
Print<int>(1);//同上,指定类型
Print("Hello");
Print<
string>("Hello");
Print(8.8f);

Tafei<5> abc;
cout
<<abc.GetSize()<<endl;
Miao<string, 8> abd;
cout
<<abd.GetSize()<<endl;

return0;
}

生成:

3.also

#include<iostream>
#include<string>
#include<typeinfo>

using namespacestd;

// 1. 先声明一个模板函数,用于获取类型名
template<typenameT>
const char* get_type_name() {
return typeid(T).name();// 默认返回原始类型名
}

// 2. 对我们关心的类型做特化,返回友好名称
template<>
const char* get_type_name<string>() {
return"string";
}

template<>
const char* get_type_name<int>() {
return"int";
}

template<>
const char* get_type_name<float>() {
return"float";
}

// 3. 修改 Miao 类的 GetType() 方法,使用这个模板函数
template<typenameA,intB>
classMiao
{
private:
Anumers[B];
public:
intGetSize()const{returnB; }
const char* GetType()const{
returnget_type_name<A>();// 调用我们的模板函数,获取友好名称
}
};

// 其他代码保持不变...
intmain() {
// ... 之前的 Print 调用 ...
Miao<string, 8> abd;
cout
<<abd.GetSize()<<endl;
cout << abd.GetType() << endl;
// 现在会输出 "string"
return0;
}

4.不要滥用模板!!!(有些代码服务甚至禁用模板)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/23 7:24:36

MS1100 VOC气体传感器原理与RT-Thread嵌入式驱动实现

1. MS1100气体传感器技术解析与工程实现1.1 传感器原理与应用定位MS1100&#xff08;亦称CJMCU-1100或MS-1100&#xff09;是一款基于金属氧化物半导体&#xff08;MOS&#xff09;技术的宽谱挥发性有机化合物&#xff08;VOC&#xff09;气体传感器。其核心敏感材料在接触甲醛…

作者头像 李华
网站建设 2026/3/23 7:24:24

嵌入式电源防反接电路四大方案深度对比与选型指南

1. 电源防反接电路设计原理与工程选型分析在嵌入式硬件系统开发中&#xff0c;电源极性误接是导致板级损坏的最常见人为故障之一。尤其在工厂批量生产、现场调试或终端用户自行更换电源适配器的场景下&#xff0c;操作人员可能因疏忽将正负极反向接入供电端子。这种看似低级的错…

作者头像 李华
网站建设 2026/3/23 7:24:20

嵌入式总线错误与内存对齐深度解析

1. 嵌入式总线错误深度剖析&#xff1a;从原理到实践的系统性排查指南在嵌入式系统开发实践中&#xff0c;程序异常终止是工程师最常遭遇的挑战之一。其中&#xff0c;总线错误&#xff08;Bus Error&#xff09;因其触发条件隐蔽、表现形式多变、平台差异显著等特点&#xff0…

作者头像 李华
网站建设 2026/3/23 7:18:30

SF32LB52黄山派开发板:面向可穿戴设备的低功耗高集成硬件平台

1. 项目概述SF32LB52黄山派开发板是一款面向可穿戴设备原型开发的高性能嵌入式硬件平台&#xff0c;其核心定位为智能手表与手环类产品的功能验证与快速迭代载体。该开发板并非通用型评估板&#xff0c;而是以终端产品形态为设计导向——集成完整人机交互链路&#xff08;显示、…

作者头像 李华
网站建设 2026/3/23 7:10:29

如何快速获取Steam游戏清单:Onekey工具的完整使用指南

如何快速获取Steam游戏清单&#xff1a;Onekey工具的完整使用指南 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 还在为Steam游戏清单的繁琐获取过程感到困惑吗&#xff1f;Onekey作为一款完全…

作者头像 李华
网站建设 2026/3/23 7:09:27

Visual Studio 2022下的MIDI音乐编程:如何用C语言模拟多种乐器音色

Visual Studio 2022下的MIDI音乐编程&#xff1a;如何用C语言模拟多种乐器音色 MIDI技术为数字音乐创作提供了无限可能。在Visual Studio 2022环境中&#xff0c;通过C语言调用Windows底层API&#xff0c;开发者可以构建能够模拟钢琴、吉他、笛子等多种乐器音色的音乐程序。这种…

作者头像 李华