C++-Record12—函数参数相关的扩展(C++对C的扩展)

目录

默认参数

函数的占位参数

总体代码


默认参数

写一个函数先,其中,在形参那里,先填一个参数:

void myPrint(int x = 3)
{
	cout<<"x"<<x<<endl;
}

 在调用的时候:

void main_默认参数()
{
	
	myPrint(4);
	myPrint(); 

	//
	cout<<"hello..."<<endl;
	system("pause");
	return ;
}

如果调用的时候,如果没填参数,那么就按被调函数中的原先设置的参数来。 

1 若你填写参数,使用你填写的,不填写默认

如果有多个参数:

void myPrint2( int m, int n, int x = 3, int y = 4) 
//void myPrint2( int m, int n, int x = 3, int y ) //会报错
{
	cout<<"x"<<x<<endl;
}

      2 在默认参数规则 ,如果默认参数出现,那么右边的都必须有默认参数

函数的占位参数

占位参数只有参数类型声明,而没有参数名声明,一般情况下,在函数体内部无法使用占位参数。

void func1(int a, int b, int)
{
	cout<<"a"<<a<<" b"<<b<<endl;
}

void main_占位参数()
{
	
	//func1(1, 2); //err调用不起来
	func1(1, 2, 3);

	cout<<"hello..."<<endl;
	system("pause");
	return ;
}

调用的时候,如果写的不是三个参数,就调用不起来。保证,函数调用是,必须写够参数。

 

最后,再举个把默认参数和占位参数结合到一起的例子:

void  func2(int a, int b, int =0)
{
	cout<<"a="<<a<<";b="<<b<<endl;
}

void main()
{
	func2(1, 2); //0k
	func2(1, 2, 3); //ok
	
	cout<<"hello..."<<endl;
	system("pause");
	return ;
}

 这样的话,输入三个参数也可以,输入两个参数也可以。

        可以将占位参数与默认参数结合起来使用。

        意义:为以后程序的扩展留下线索  (最好别留),兼容C语言程序中可能出现的不规范写法。

C++可以声明占位符参数,占位符参数一般用于程序扩展和对C代码的兼容

当然,这就是一个语法现象,仅作了解,在实际开发中用处不多。

总体代码


#include <iostream>
using namespace std;

void myPrint(int x = 3)
{
	cout<<"x"<<x<<endl;
}

//1 若 你填写参数,使用你填写的,不填写默认
//2 在默认参数规则 ,如果默认参数出现,那么右边的都必须有默认参数
void myPrint2( int m, int n, int x = 3, int y = 4)
//void myPrint2( int m, int n, int x = 3, int y )
{
	cout<<"x"<<x<<endl;
}

void main_默认参数()
{
	
	myPrint(4);
	myPrint(); 

	//
	cout<<"hello..."<<endl;
	system("pause");
	return ;
}

//函数占位参数 函数调用是,必须写够参数

void func1(int a, int b, int)
{
	cout<<"a"<<a<<" b"<<b<<endl;
}

void main_占位参数()
{
	
	//func1(1, 2); //err调用不起来
	func1(1, 2, 3);

	cout<<"hello..."<<endl;
	system("pause");
	return ;
}

//默认参数和占位参数

void  func2(int a, int b, int =0)
{
	cout<<"a="<<a<<";b="<<b<<endl;
}

void main()
{
	func2(1, 2); //0k
	func2(1, 2, 3); //ok
	
	cout<<"hello..."<<endl;
	system("pause");
	return ;
}
发布了140 篇原创文章 · 获赞 6 · 访问量 4847

猜你喜欢

转载自blog.csdn.net/qq_17846375/article/details/104045007
今日推荐