默认实参需要注意的几个地方

原创 2015年07月07日 09:48:12

1.默认实参作为形参的初始值出现在形参列表中。我们可以为一个或多个形参定义默认值,不过需要注意一点的是,一旦某个形参被赋予了默认值,它后面的所有形参都必须有默认值

2.对于函数声明来说,一般是只对函数声明声明一次,并且将这个声明放在头文件中;但是C++中也允许对函数进行多次声明。但是需要注意的是,在给定的作用域中一个形参只能被赋予一次默认实参

这个可以详细地说一下,因为对于普通函数来说,你声明多次都是合法的;请看下面的代码:

void printNum1(int a );

void printNum1(int a );

void printNum1(int a );

void printNum2(int b);

void printNum1(int a )
{
    cout << a << endl;
}

void printNum2(int b)
{
    cout << b << endl;
}

int main( )
{
    int a = 66;
    printNum(a);
    return 0;
}

这段代码可以通过编译器编译,这段代码也是合法的;但是当我们对带有默认实参的函数进行类似的声明时,情况有些不同;

void printNum(int a = 99);

void printNum(int a  = 99);

void printNum(int a  = );

void printNum2(int b = 66);

void printNum(int a = 99)
{
    cout << a << endl;
}

void printNum2(int b = 66)
{
    cout << b << endl;
}

int main( )
{
    int a = 66;
    printNum(a);
    return 0;
}

这段代码编译就出现了问题,除了第一个printNum的声明外,其他声明都认为是重复声明;这与第二点中的“在给定的作用域中一个形参只能被赋予一次默认实参”是相符的,即使被赋予的默认实参值是同一个值,编译器也认为你对形参进行了第二次的默认实参赋值,所以这里编译不过。
但是如果你在声明该函数的时候却可以定义其他形参的默认实参值,当然要保证这个被指定默认实参的形参后面都已经被默认指定了实参(有点绕口。。。)。

类模板中的默认类型的使用和默认实参使用方法类似。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

cocos2d 从v1.x升级到v2.x需要注意的几个地方

首先v1.x一些CCNode定位函数实现的有问题,导致返回的CCPoint的x坐标不正确(超出320后无变化),怀疑是其对屏幕旋转判断的不正确;而且这种现象在iOS 7.1之前的模拟器中运行都正常,在...
  • mydo
  • mydo
  • 2015-09-10 20:47
  • 451

AsynckTask几点需要注意的几个地方

问题一:Asynctask是多线程么?   是的 问题二:AsyncTask与handler相比,谁更轻量级?  通过源码可以发现AsyncTask实际上就是一个线程池,而网上的说法是Async...

Android组建4:android中需要注意的几个地方

(1)Android代码导入之后经常碰到API不符合的情况。这种情况下,可以选中工程,右击选择properties属性。然后选择android。选择你当前有的API进行加载。 (2)加载andro...

使用 IAR for AVR 时需要注意的几个地方

在AVR所有的编译器中,IAR for AVR 是编译效率最高的编译器, 但是相对来说IAR for AVR的设置项也非常多,如果使用不当反而会出现很多莫名其妙的问题.       一. 关于堆栈...

C++虚函数需要注意的几个地方

一、通过父类型的指针访问子类自己的虚函数 我们知道,子类没有重载父类的虚函数是一件毫无意义的事情。因为多态也是要基于函数重载的。 虽然在上面的图中我们可以看到Base1的虚表中有Derive的虚函...

Android集成支付宝的几个步骤以及需要注意的几个地方

如今许多App都集成了支付宝支付,因为其支付简单,安全,快捷。掌握了支付宝的集成和支付流程是一个非常必要的。 支付宝的sdk下载地址在https://doc.open.alipay.com/doc2/...

使用TinyXml库值得注意的几个地方

这两天仔细看了下TinyXml的源代码, 完美地搞清楚了一些网友和我自己的很多疑问. 鉴于TinyXml的实用性, 而且现在不少人在使用, 就决定在此做点有意义的事情 ---- 列出使用TinyXml...
  • g0ose
  • g0ose
  • 2017-03-25 11:19
  • 118

android Application值得注意的几个地方

1:Application是什么?           Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)