C++浅析缺省参数的使用

目录
  • 一. 概念
  • 二. 分类
    • 全缺省参数
    • 半缺省参数

一. 概念

缺省参数(有些地方叫默认参数)是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。

void TestFunc(int a = 0)
{
     cout << a << endl;
}
int main()
{
     TestFunc(); //没有传参时,使用参数的默认值
     TestFunc(10); //传参时,使用指定的实参
}

二. 分类

全缺省参数

缺省全部参数

void TestFunc(int a = 10, int b = 20, int c = 30)
{
     cout << "a = " << a << endl;
     cout << "b = " << b << endl;
     cout << "c = " << c << endl;
}

半缺省参数

缺省部分参数

void TestFunc(int a, int b = 10, int c = 20)
{
     cout << "a = " << a << endl;
     cout << "b = " << b << endl;
     cout << "c = " << c << endl;
}

注意:

1. 半缺省参数必须从右往左缺省,连续的,不能间隔着给

void Test(int a = 10, int b = 20, int c = 30)
{
	cout << a << " " << b << " " << c << endl;
}
int main()
{
    Test();//全用默认的,全缺省
	Test(1);//只有第一个不用默认的,半缺省
	Test(1, 2);//只有第三个用默认的,半缺省
	Test(1,2,3);//都不用默认的,不缺省
    return 0;
}

2. 缺省参数不能在函数声明和定义中同时出现,声明和定义分离的话,必须在声明的时候给

因为如果分离了,在编译阶段,两个.cpp并没有链接在一起,只有链接阶段才会链接在一起,那么,如果是定义给了,声明没给,在调用函数的那个.cpp文件里包含了头文件,里面有有函数的声明,但是没有函数的定义,函数的声明里有参数,但是如果你想使用缺省参数,由于声明没给缺省参数,就会出现,这个函数有参数,你需要传参数进去,但是由于你想使用缺省参数而没传参数,就会出现错误因而报错

//a.h
void TestFunc(int a = 10);
// a.c
void TestFunc(int a = 20)
{}
// 注意:如果声明与定义位置同时出现,恰巧两个位置提供的值不同
//那编译器就无法确定到底该用哪个缺省值。

3. 缺省值必须是常量或者全局变量

4. C语言不支持(编译器不支持)

到此这篇关于C++浅析缺省参数的使用的文章就介绍到这了,更多相关C++ 缺省参数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++的缺省参数你了解嘛

    目录 一.缺省参数概念 有什么用 二.缺省参数分类 全缺省参数 半缺省参数 总结 一.缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个默认值.在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参 #include<iostream> using namespace std; void TestFunc(int a = 0)//参数缺省值 { cout << a << endl; } int main() { TestFunc();//没有指定实

  • C++缺省参数的具体使用

    目录 一.缺省参数概念 二.缺省参数分类 全缺省参数 半缺省参数 缺省参数的误区 1.滥用缺省参数,损害代码的结构和可读性. 2.多个缺省参数,可能引入逻辑含混的调用方式 3.重载时可能出现二义性 4.函数调用中的精神分裂症 一.缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个默认值.在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参 #include<iostream> using namespace std; void TestFunc(int a = 0)//

  • C++入门(命名空间,缺省参数,函数重载,引用,内联函数,auto,范围for)

    一.C++关键字 C++总共有63个关键字,在入门阶段我们只是大致了解一下就可,在后续博客中会逐渐讲解 二.命名空间 相信学过C++的同学,一定都写过下面这个简单的程序 #include<iostream> using namespace std; int main() { cout<<"hello world"<<endl; return 0; } 我们先来看第二行代码,using namespace std , 这行代码是什么意思呢 ? 这里我们

  • C++命名空间和缺省参数介绍

    一.命名空间 为什么引入命名空间 在C++中,变量.函数和类都是大量存在的,这些变量.函数和类的名称将都存在于全局作用域中,可能会导致很多冲突.使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的.     int a = 10;          int main(void)     {         int a = 10;         return 0;     } 这里一个a是全局变量,一个a是局部变量.可以编译通过

  • C++缺省参数的理解

    目录 什么叫缺省参数? 缺省多个参数的情况 1.全缺省 2.半缺省 总结 什么叫缺省参数? 缺省参数是声明或定义函数时为函数的参数指定一个默认值.在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参. 注意:要想省略参数,声明或者定义内必须指定默认值 void TestFunc(int a = 0) { cout<<a<<endl; } int main() { TestFunc(); // 没有传参时,使用参数的默认值 TestFunc(10); // 传参时,使用

  • C++浅析缺省参数的使用

    目录 一. 概念 二. 分类 全缺省参数 半缺省参数 一. 概念 缺省参数(有些地方叫默认参数)是声明或定义函数时为函数的参数指定一个默认值.在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参. void TestFunc(int a = 0) { cout << a << endl; } int main() { TestFunc(); //没有传参时,使用参数的默认值 TestFunc(10); //传参时,使用指定的实参 } 二. 分类 全缺省参数 缺省全部参

  • python 函数的缺省参数使用注意事项分析

    本文实例讲述了python 函数的缺省参数使用注意事项.分享给大家供大家参考,具体如下: python的函数支持4种形式的参数:分别是必选参数. 缺省参数. 可变长参数.关键字参数:而且参数的书写顺序也是又一定规定的,顺序如下 def fun(param, default_params, arbitrary_params, keyword_param) 下面针对缺省型参数分析一些注意事项 先定义这样子一个函数 def test_fun(a=[]): a.append('a') print a i

  • 关于C# 4.0新特性“缺省参数”的实现详解

    前言 C#4.0关于缺省参数的新特性,相信大家都不会陌生.所谓缺省参数,顾名思义,就是在声明方法的某个参数的时候为之指定一个默认值,在调用该方法的时候如果采用该默认值,你就无须指定该参数.和很多语言层面特性(语法糖)的实现一样,缺省参数也是编译器为我们玩的一个小花招.缺省参数最终体现为两个特殊的自定义特性OptionalAttribute和DefaultParameterValueAttribute . 目录 一.缺省参数的用法 二.实现缺省参数的两个特性:OptionalAttribute和D

  • c语言中缺省参数的类型总结

    1.函数全缺省参数,函数在定义或者声明时,所有的形参都默认值. #include <stdio.h> //x,y为函数的形参,如果函数被调用时,没有设置x和y值,x值默认为100,y值默认为5 int sub(int x=100,int y=5) { return (x-y); } int main(void) { int a=20; int b=10; //变量a.b为sub函数的实参 printf("sub函数计算结果 = %d\n",sub(a, b)); //注意:

  • C语言 函数缺省参数详情

    目录 一.函数简介 1.函数声明 2.函数定义 3.函数调用 4.函数形参和实参 二.函数缺省参数 1.函数全缺省参数 2.函数半缺省参数 三.注意事项 一.函数简介 1.函数声明 函数声明只是一个空壳,不会有具体的函数实现,而定义要实现函数的实现,例如: int sub(int x,int y); //只需要声明即可,不需要实现这个函数的功能 2.函数定义 函数的定义需要实现这个函数的功能,例如: int sub(int x,int y) ////需要实现这个函数的功能 { return (x

随机推荐