解析C++函数的默认参数和占位参数及较之C语言的拓展

 更新时间:2016年03月14日 14:50:32   作者:YoferZhang  
这篇文章主要介绍了C++中的默认参数和占位参数及较之C语言的拓展,需要的朋友可以参考下

可以将占位参数与默认参数结合起来使用
意义:
为以后程序的扩展留下线索
兼容C语言程序中可能出现的不规范写法

//C++可以声明占位符参数,占位符参数一般用于程序扩展和对C代码的兼容 
int func(int a, int b, int = 0) 
{ 
  return a + b; 
} 
void main() 
{ 
  //如果默认参数和占位参数在一起,都能调用起来 
  func(1, 2); 
  func(1, 2, 3); 
  system("pause"); 
} 


默认参数对C的函数拓展
1.C++中可以在函数声明时为参数提供一个默认值,
当函数调用时没有指定这个参数的值,编译器会自动用默认值代替

void myPrint(int x = 3) 
{ 
  printf("x:%d", x); 
} 

2.函数默认参数的规则
只有参数列表后面部分的参数才可以提供默认参数值。一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参数都必须使用默认参数值:

//默认参数 
void printAB(int x = 3) 
{ 
  printf("x:%d\n", x); 
} 
 
//在默认参数规则 ,如果默认参数出现,那么右边的都必须有默认参数 
void printABC(int a, int b, int x = 3, int y=4, int z = 5) 
{ 
  printf("x:%d\n", x); 
} 
int main(int argc, char *argv[]) 
{ 
  printAB(2); 
  printAB(); 
  system("pause"); 
  return 0; 
} 

 


默认参数对C的函数拓展
1.C++中可以在函数声明时为参数提供一个默认值,当函数调用时没有指定这个参数的值,编译器会自动用默认值代替:

void myPrint(int x = 3) 
{ 
  printf("x:%d", x); 
} 

2.函数默认参数的规则:
只有参数列表后面部分的参数才可以提供默认参数值。
一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参数都必须使用默认参数值。

//默认参数 
void printAB(int x = 3) 
{ 
  printf("x:%d\n", x); 
} 
 
//在默认参数规则 ,如果默认参数出现,那么右边的都必须有默认参数 
void printABC(int a, int b, int x = 3, int y=4, int z = 5) 
{ 
  printf("x:%d\n", x); 
} 
int main(int argc, char *argv[]) 
{ 
  printAB(2); 
  printAB(); 
  system("pause"); 
  return 0; 
} 

相关文章

  • C++浅析序列数据封装与优化实现方法

    C++浅析序列数据封装与优化实现方法

    封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全,数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制
    2022-12-12
  • C语言中动态内存管理初学者容易犯的6个错误分享

    C语言中动态内存管理初学者容易犯的6个错误分享

    本篇文章主要介绍了初学者使用C语言中动态内存管理的4个函数时最容易犯的6个错误,以及如何避免这些错误,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-04-04
  • C++实现一个扫雷小游戏

    C++实现一个扫雷小游戏

    这篇文章主要为大家详细介绍了C++实现一个扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • C语言扫雷详细代码分步实现流程

    C语言扫雷详细代码分步实现流程

    扫雷是电脑上很经典的游戏,特意去网上玩了一会,几次调试之后,发现这个比三子棋要复杂一些,尤其是空白展开算法上和堵截玩家有的一拼,与实际游戏差别较大,不能使用光标,下面来详解每一步分析
    2022-02-02
  • C++11 thread多线程编程创建方式

    C++11 thread多线程编程创建方式

    这篇文章主要介绍了C++11 thread多线程编程的相关知识,包括线程的创建方式结束方式及互斥锁的实例代码详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C语言实现小学生计算机辅助教学系统

    C语言实现小学生计算机辅助教学系统

    这篇文章主要为大家详细介绍了C语言实现小学生计算机辅助教学系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • C语言中如何实现桶排序

    C语言中如何实现桶排序

    这篇文章主要介绍了C语言中如何实现桶排序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Opencv基于CamShift算法实现目标跟踪

    Opencv基于CamShift算法实现目标跟踪

    这篇文章主要为大家详细介绍了Opencv基于CamShift算法实现目标跟踪,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C++数据结构的队列详解

    C++数据结构的队列详解

    这篇文章主要为大家介绍了C++数据结构的队列,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • Qt控件之QPushButton使用及技巧

    Qt控件之QPushButton使用及技巧

    QPushButton类是Qt中用于创建按钮的控件类,它继承自QAbstractButton类,本文就来介绍一下Qt控件之QPushButton使用及技巧,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10

最新评论