• int T(int & a = 5){....} 对吗?


    先来看一段简单的C++代码:

    #include <iostream>
    
    using namespace std;
    
    int T(int & a = 5)
    {
    	a = 3;
    	return 0;
    }
    
    void main()
    {
    	int a = 0;
    	T(a);
    	cout<<a<<endl;
    }
    

    经过编译,发现根本通不过。这是为什么呢?

    我们都知道,“&”既可以作取地址符,又可以作引用符,但是程序中使用了“int T(int & a = 5)”,那么它到底是取地址符还是引用符呢?

    可能你会说,这是一个引用符呀,只是默认值是5。最初,我这样写代码的时候也是这样认为的,但是编译器却指出了错误。

    没办法,我只好给自己一个勉强的解释:带缺省值的参数不能作引用类型,作为引用类型的参数不能有缺省值,哈哈,只能这样想了!

    修改成下面的代码就可以通过编译了:

    1. int T(int a = 5)
    2. int T(int & a)

  • 相关阅读:
    C# WinForm程序退出的方法
    SpringCloud 微服务框架
    idea 常用操作
    Maven 学习笔记
    SpringBoot 快速开发框架
    html 零散问题
    Java方法注释模板
    Seating Arrangement
    hibernate 离线查询(DetachedCriteria)
    hibernate qbc查询
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/1872133.html
Copyright © 2020-2023  润新知