Bootstrap

C++默认参数

默认参数指的是,当函数调用中省略了实参时自动使用的一个值。这极大的提高了使用函数的灵活性,

如何设置默认值呢?必须通过函数原型,因为编译器时通过查看函数原型来了解函数所使用的参数数目,因此函数原型也必须将可能的默认参数告知程序。对于带参数列表的函数,必须从右向左添加默认值,也就是说腰围某个参数设置默认值,则必须为它右边的所有参数提供默认值。默认参数并非编程方面的重大突破。而是提供了一种边界的方式。

通过使用默认参数,可以减少要定义的析构函数,方法,以及方法重载的数量。

#include <iostream>
using namespace std;

const int ArSize = 5;

char* left(const char* str, int n = 1);

int main()
{
	char sample[ArSize];
	cout << "enter a string :" << endl;
	cin.get(sample, ArSize);
	char* ps = left(sample, 4);
	cout << ps << endl;
	delete[] ps;
	ps = left(sample);
	cout << ps << endl;
	delete[] ps;
	return 0;
}
char* left(const char* str, int n)
{
	if (n < 0)
	{
		n = 0;
	}
	char *p = new char[n + 1];
	int i;
	for (i = 0; i < n && str[i]; i++)
	{
		p[i] = str[i];
	}
	while (i <= n  )
	{
		p[i++] = '\0';
	}
	return p;
}

;