C++默认参数值函数
1.默认参数值的函数
C++语言允许在定义函数时给其中或某些形式参数(形参)指定默认值,方法就是在相应的形参后面写上“=默认值”,如果省略了对应位置上的实参的值,则在执行被调函数时以该形参的默认值进行运算。
本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!
2.默认参数值函数注意事项
- 默认函数一般在函数声明中设置。如果程序中既有函数声明又有函数定义,则定义函数时不允许再定义参数的默认值;如果程序中只有函数定义而没有函数声明,则默认参数才可以出现在函数定义中;
- 默认参数的顺序。如果一个函数中有多个默认参数,则参数分布中默认参数应从右至左逐个定义。也就是说,如果你要给默认值的这个形参右边还有没有给默认值的形参,那么,这样定义是错误的。如:
void func( int a=, float b, long c= ); //错误
void func( int a, float b=, long c= ); //正确
例题:定义、测试重载函数。
#include<iostream>
using namespace std; int sum(int i,int j=); //有函数声明
int sum(int i,int j)
{
return i+j;
} void print(int i, int j, int sum=) //无函数声明
{
cout << "i:" << i << endl;
cout << "j:" << j << endl;
cout << "sum:" << sum << endl;
} int main()
{
int a=;
int b=;
cout << "sum(a):" << sum(a) << endl;
cout << "sum(a,b):" << sum(a,b) << endl;
cout << "print(a,b):" << endl;
print(a,b);
cout << "print(a,b,sum(a,b)):" << endl;
print(a,b,sum(a,b));
return ;
} //菜鸟,求大家批评指教,代码编写习惯和规范等等!!!谢谢!!!
本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!
C++默认参数值函数的更多相关文章
- 读书笔记 effective c++ Item 37 永远不要重新定义继承而来的函数默认参数值
从一开始就让我们简化这次的讨论.你有两类你能够继承的函数:虚函数和非虚函数.然而,重新定义一个非虚函数总是错误的(Item 36),所以我们可以安全的把这个条款的讨论限定在继承带默认参数值的虚函数上. ...
- C++——带默认参数值的函数
函数在声明时可以预先给出默认的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的默认参数值. ,) { return x + y;} int main() { add(,);//10+20 a ...
- python函数把可变数据类型当默认参数值的问题(转)
add by zhj: 文章写的很好,其实只要默认参数在函数中只读不写,那默认值就不会被修改,可变类型做默认参数就不会有问题 方法二中,当result is None时,修改result的指向,不再指 ...
- 为javascript设置默认参数值
javascript(js)中如何为函数设置默认参数值,下面提供几种方法供参考. 第一种方法: function example(a,b){ var a = arguments[0] ? argume ...
- Python 默认参数值
Python 默认参数值,对于一些函数来说,你可能为希望使一些参数可选并使用默认的值,以避免用户不想为他们提供值的情况.默认参数值可以有效帮助解决这一情况.你可以通过在函数定义时附加一个赋值运算符(= ...
- C++之带有默认参数值的构造函数
在一个类中 ,如果程序员没有写,任何一个构造函数,则编译器将为该类提供一个默认的构造函数,如果程序员对类的构造函数进行了重载,则编译器将不提供默构造函数,这里需要手动书写一个无参的构造函数, 无参的构 ...
- c++默认参数函数注意事项
再有默认参数的函数中,一般我们都把默认参数放在声明处而不是定义处. 如果声明和定义都有默认参数,编译器将会报错. 调用含有默认实参的函数时,我们可以包含参数,也可以省略. 有默认参数的函数,我们可以不 ...
- vc MFC 通过IDispatch调用默认成员函数
CComPtr<IDispatch> spDisp(IDispatch *); if(!spDisp) return; DISPPARAMS dispParam={0}; //没有参数 V ...
- C++默认成员函数
1.什么是面向对象? 概念:(Object Oriented Programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法. 对象指的是类的实例,将对象作为程序的基本单元,将程 ...
随机推荐
- crash recovery
2016-07-02 17:56:07 5772 [Note] InnoDB: Database was not shutdown normally!2016-07-02 17:56:07 5772 ...
- java--map容器的hashcode和equals
先看一个例子 首先定义一个user类. package com.text.tool; public class User { int id; User(int id) { this.id = id; ...
- linux shell执行方式
linux shell执行有两种方式 shell脚本以#!/bin/bash开头,执行shell时先检查首行,在内部以下列方式执行: $/bin/bash script.sh 1. 使用sh执行. $ ...
- cglib源码分析(三):Class生成策略
cglib中生成类的工作是由AbstractClassGenerator的create方法使用相应的生成策略完成,具体代码如下: private GeneratorStrategy strategy ...
- 关于Fragment与Fragment、Activity通信的四种方式
一直想总结一下Fragment与Fragment.Activity通信的问题,今天有时间一共总结了三种,权当抛砖引玉,如果大家还有更好的方式来实现Fragment和Fragment.Activity的 ...
- UISenior之数据的本地化持久化
数据的本地化主要分为两个方面:1.简单数据的本地持久化(NSString.NSArray.NSDictionary.NSData)2.复杂数据的本地持久化(本文以Person类为例) 简单对象的本地化 ...
- Socket.io各个发送消息的含义
// send to current request socket client socket.emit('message', "this is a test"); // send ...
- Java 内存分析图
client -------------------------- public class Client{ public static void main(String[] args){ Perso ...
- ACM——3n+1
3n+1 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:937 测试通过:386 描述 对于任意大于1的自然 ...
- sqlite 数据库打开失败
今天在做Android电子词典的时候,数据库打不开,报错为:Could not open the database in read/write mode. 后来才发现犯了一个低级错误,没有设置权限. ...