C++学习笔记(6)
其他:
- 省略号作函数参数:表示函数的参数是不固定的,可以传递一个或者多个参数(如:printf函数):void Output(int num, ...)
- 函数重载:函数的参数个数,类型不同,注意函数的返回值类型不作为重载依据
- 函数模板:不是说函数模板中class和typedef一样的效果可以互换吗,为是么VS中会报错?!
实例1:
template<class type>//模板参数为模板类型参数
type Add(type a, type b)
{
return a + b;
}
int main()
{
//int n = Add<int>(10.5, 20);
//int n = Add(10.5, 20);//不能这样,除非加一个int或者其他数据类型,如上
int n = Add(10.5, 20.0);
cout << n << endl;
return 0;
}
实例2:
template<class type, int n> //n为模板非类型参数
type Max(type num[n]) //注意n这里表示的是数组长度
{
type Tr = num[0];
for (int i = 0; i < n; i++)
Tr = (Tr > num[i]) ? Tr : num[i];
return Tr;
}
int main()
{
int Num1[5] = { 1, 2, 3, 4, 5 };
int Tr1 = Max<int, 5>(Num1);
cout << Tr1 << endl;
double Num2[5] = { 1.1, 2.2, 3.3, 4.4, 5.5 };
double Tr2 = Max<double, 5>(Num2);
cout << Tr2 << endl;
return 0;
}
- 函数模板的重载
template<class type>
type Add(type a, type b)
{
return a + b;
}
template<class type>
type Add(type a[], int n) //注意这里是数组,所以a要加[],同时也要注意,函数模板的重载和单纯的函数模板在这里有一点区别
{
type sum = 0;
for (int i = 0; i < n; i++)
{
sum += a[0];
}
return sum;
}
int main()
{
int a[5] = { 1, 2, 3, 4, 5 };
int sum1 = Add(10, 20);
int sum2 = Add(a, 5); //注意在main中调用时a不加[]
cout << sum1 << "\n" << sum2 << endl;
return 0;
}
- const修饰:(注:一下内容摘自百度)
int b = 500;
const int* a =
&b;
[1]
int const *a =
&b;
[2]
int* const a =
&b;
[3]
const int* const a
= &b; [4]
如果你能区分出上述四种情况,那么,恭喜你,你已经迈出了可喜的一步。不知道,也没关系,我们可以参考《effective c++》item21上的做法,如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的 右侧,const就是修饰指针本身,即指针本身是常量。因此,[1]和[2]的情况相同(即二者等效),都是指针所指向的内容为常量,这种情况下不允许对内容进行更改操 作,如不能*a
= 3 ;[3]为指针本身是常量,而指针所指向的内容不是常量,这种情况下不能对指针本身进行更改操作,如a++是错误的;[4]为指针本身和指向的内容均为常 量。
6.关于VS中的安全访问问题,如:print_s,strcpy_s等,可以通过在最开始定义#define
_CRT_SECURE_NO_WARNINGS,注意只能在最开始定义这个宏,否则无效
C++学习笔记(6)的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
- ucos实时操作系统学习笔记——任务间通信(消息)
ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...
随机推荐
- 破 400!Apache SeaTunnel 成为全球开发者共建热土
随着 Apache SeaTunnel 项目在全球数据集成领域的不断发展壮大,今天我们迎来了一个重要的里程碑 -- GitHub 贡献者数量正式突破 400 人! 这不仅是一个数字的跃升,更是全球开发 ...
- 多Agent协作入门:移交编排模式
大家好,我是Edison. 上一篇我们学习了Semantic Kernel中的群聊编排模式,它非常适合集思广益.协作解决问题等类型任务场景.今天,我们学习新的模式:移交编排. 移交编排模式简介 在移交 ...
- leedcode 827. 最大人工岛 (洪水填充)
测试链接:https://leetcode.cn/problems/making-a-large-island/ 思路: 先用洪水填充给每个岛屿进行编号,以便最后答案更新区分,设置一个used[]数组 ...
- CF780C Andryusha and Colored Balloons (dfs)
codeforce链接:https://codeforces.com/problemset/problem/780/C CF780C Andryusha and Colored Balloons 题目 ...
- 快速莫比乌斯变换(FMT)与莫比乌斯反演 例题:树上lcm
快速莫比乌斯变换 数学公式 记\(S\)为全集,\(T\)为其子集 \[\begin{align} &zeta变换:F(S)=\sum_{T\subseteq S}f(T)\\ \\ & ...
- Mac+Java日常工具分享记录
- jQuery中使用插件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java泛型-类型参数化
一. 泛型 解决支持多类型参数的方案: 1, 重载: 在同一个类中,方法名相同,参数不同 不足之处: 代码过于重复 public class Tool{ public String arrToS ...
- 解决SpringBoot项目打成的jar包启动很慢
解决的方法很简单,在/etc/hosts文件中把本机hostname加上就行. linux下输入hostname查看本机的hostname,vi /etc/hosts 在127.0.0.1后面加上本机 ...
- PyCharm 2025.2:面向工程师的 AI 工具
引言 随着人工智能技术的快速发展,AI 工程师对开发工具的需求也在不断提升.PyCharm 2025.2 版本带来了革命性的 AI 工具包,将 AI 开发所需的实验.调试.评估和部署功能原生集成到 I ...