老师告诫c++少用default arguments,为什么啊,有什么不好吗

如题所述

default是C语言中的一个关键字,是switch()语句的配套命令,switch()语句格式如下:switch( e ) //e表达式的结果必须是整型数据{case XX: //XX YY必须是整型常量(char字符也算整型) XX_statements ; [break;] //如果这里没有break,则,执行完XX_statements, //->会顺序去执行YY_statements ; 直到遇到一个break语句 //->或是达到switch()语句的结束case YY: YY_statements ; [break;]。。。其它case语句[default: //当所有的case语句都不满足e的条件时, //->程序执行这里的代码DEF_statements //如果没有default选项,则在case不满足时, //->什么都不做,直接结束switch()。 DEF_statements ; break;]}[]中括号的意思是,该语句项不是必须的,可以有,也可以没有。但有和没有会有很大差别,程序执行结果会不同。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-13
容易出错,说明一下,比如构造函数
A(int a=10),另外还有一个构造函数
A()没有参数
在调用时A obj=A(),这样就不知道是调用的哪一个函数了,而且这样的代码不能编译,编译器会提示错误。这只是简单的,如果结构复杂了或许可以编译,到时候你就不知道是调用的哪个了,你也许是想用第一种,但是第二种也符合就造成误解。如果某种情况下编译通过了,但是不是你想调用的那个,那么你很难找出原因。
相似回答