C++:构造函数默认的参数声明
2015-10-26 23:36
435 查看
C++函数的默认参数指的是在函数声明或者定义时给形式参数指定默认值,从而在调用参数时可以少写参数,少掉的参数用默认值代替。LZ的Display()函数的代码看起来似乎是可以有s2和s3两个默认参数,那么此函数的声明写法就是
void Display(string s1, string s2 = "", string s3 = "");
那么s2和s3都是带有默认值的默认参数,以下的函数调用都是正确的写法
1、 Display("abc", "123");
2、Display("abc");
3、Display("abc","123","xxx");
具体调用时缺少的参数将取它们的默认值。
注意:
1、函数的默认参数只能指定一次,所以一般是在声明中;
2、声明中的任何一个默认参数右边的参数都必须全部是默认参数,也就是默认参数必须从最右边开始连续指定;
3、调用时任何一个给出值的参数左边的参数都必须全部给出具体值,也就是从左边开始连续给出参数值,不能隔空跳过。
注意:
两个地方都需要申明参数,但是在类中申明构造函数时候需要参数默认值,如:
Class X
{
X(int a=5);
}
在实现时候不需要再给出默认值:
X::X(int a)
{
...
}
void Display(string s1, string s2 = "", string s3 = "");
那么s2和s3都是带有默认值的默认参数,以下的函数调用都是正确的写法
1、 Display("abc", "123");
2、Display("abc");
3、Display("abc","123","xxx");
具体调用时缺少的参数将取它们的默认值。
注意:
1、函数的默认参数只能指定一次,所以一般是在声明中;
2、声明中的任何一个默认参数右边的参数都必须全部是默认参数,也就是默认参数必须从最右边开始连续指定;
3、调用时任何一个给出值的参数左边的参数都必须全部给出具体值,也就是从左边开始连续给出参数值,不能隔空跳过。
注意:
两个地方都需要申明参数,但是在类中申明构造函数时候需要参数默认值,如:
Class X
{
X(int a=5);
}
在实现时候不需要再给出默认值:
X::X(int a)
{
...
}
相关文章推荐
- C++:构造函数的默认参数知识拓展
- C++嵌套类与局部类
- C++嵌套类与局部类
- C++ 实现类似Notepad++ Ctrl+F 的搜索功能
- C++:文件的输入和输出
- C++面试常见题目问与答(汇总一)
- C++Primer笔记一
- C++:流类库与输入输出
- c++类继承的成员可见性
- C++:异常的处理
- C++:类模板与模板类
- 对C++中I/O流的概念及流类库结构的认识
- 程序转化语意学 Program Transformation Semantics
- C语言基础(九)结构体、补充typedef用法
- C语言基础(八)字符串
- C++:函数模板与模板函数
- C语言基础(五)函数、多文件开发
- 奇偶分割数组(LintCode)
- 关于将函数的地址作为参数传递给另一个函数调用
- MFC中非模态对话框不响应PreTranslateMessage函数的解决方法