其他:

  1. 省略号作函数参数:表示函数的参数是不固定的,可以传递一个或者多个参数(如:printf函数):void Output(int num, ...)
  2. 函数重载:函数的参数个数,类型不同,注意函数的返回值类型不作为重载依据
  3. 函数模板:不是说函数模板中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;

}

  1. 函数模板的重载

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;

}

  1. 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)的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

  10. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

随机推荐

  1. 破 400!Apache SeaTunnel 成为全球开发者共建热土

    随着 Apache SeaTunnel 项目在全球数据集成领域的不断发展壮大,今天我们迎来了一个重要的里程碑 -- GitHub 贡献者数量正式突破 400 人! 这不仅是一个数字的跃升,更是全球开发 ...

  2. 多Agent协作入门:移交编排模式

    大家好,我是Edison. 上一篇我们学习了Semantic Kernel中的群聊编排模式,它非常适合集思广益.协作解决问题等类型任务场景.今天,我们学习新的模式:移交编排. 移交编排模式简介 在移交 ...

  3. leedcode 827. 最大人工岛 (洪水填充)

    测试链接:https://leetcode.cn/problems/making-a-large-island/ 思路: 先用洪水填充给每个岛屿进行编号,以便最后答案更新区分,设置一个used[]数组 ...

  4. CF780C Andryusha and Colored Balloons (dfs)

    codeforce链接:https://codeforces.com/problemset/problem/780/C CF780C Andryusha and Colored Balloons 题目 ...

  5. 快速莫比乌斯变换(FMT)与莫比乌斯反演 例题:树上lcm

    快速莫比乌斯变换 数学公式 记\(S\)为全集,\(T\)为其子集 \[\begin{align} &zeta变换:F(S)=\sum_{T\subseteq S}f(T)\\ \\ & ...

  6. Mac+Java日常工具分享记录

  7. jQuery中使用插件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Java泛型-类型参数化

    一. 泛型 解决支持多类型参数的方案: 1, 重载: 在同一个类中,方法名相同,参数不同 不足之处: 代码过于重复 public class Tool{    public String arrToS ...

  9. 解决SpringBoot项目打成的jar包启动很慢

    解决的方法很简单,在/etc/hosts文件中把本机hostname加上就行. linux下输入hostname查看本机的hostname,vi /etc/hosts 在127.0.0.1后面加上本机 ...

  10. PyCharm 2025.2:面向工程师的 AI 工具

    引言 随着人工智能技术的快速发展,AI 工程师对开发工具的需求也在不断提升.PyCharm 2025.2 版本带来了革命性的 AI 工具包,将 AI 开发所需的实验.调试.评估和部署功能原生集成到 I ...