找回密码
 立即注册
搜索
查看: 582|回复: 2

[软件] 引用参数类型,可以设置缺省值吗?

[复制链接]
     
发表于 2024-11-29 10:55 | 显示全部楼层 |阅读模式
比如,以下代码是否合法?


声明
void  fun ( int &W = 6 ) ;
定义
void  fun ( int &W )  {
    W = W * 10;
    cout<<W<<endl;
};


调用方法:
int a=3
fun(a) ;
fun() ;

回复

使用道具 举报

     
发表于 2024-11-29 11:10 来自手机 | 显示全部楼层
看起来可以的

https://en.cppreference.com/w/cpp/language/default_arguments
void f1(int*=0);         // Error, '*=' is unexpected here
void g1(const int&=0);   // Error, '&=' is unexpected here
void f2(int* = 0);       // OK
void g2(const int& = 0); // OK
void h(int&&=0);         // OK even without spaces, '&&' is a token here

—— 来自 鹅球 v3.3.92
回复

使用道具 举报

     
发表于 2024-11-29 15:37 | 显示全部楼层
不行,得是右值引用吧
void  fun ( int &&W = 6 ) ;
void  fun ( int &&W )  {
    W = W * 10;
    cout<<W<<endl;
}
然后调用
fun(std::move(a));
fun();
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-12-22 02:55 , Processed in 0.035894 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表