簡體   English   中英

為什么我得到2作為輸出?

[英]Why am i getting 2 as an output?

#include<iostream>
using namespace std;
template<class T>
void f(T &i)
{
    cout<<"1";
}
void f(const int&i)
{
    cout<<"2";
}
int main()
{
    f(7);
}

我已經使用了模板功能和普通功能。 但是帶有const int參數的函數在調用時正在執行。 為什么會這樣?

在編譯代碼時,取決於參數的類型和參數的數量,編譯器將在移至Template函數之前找到最相關的函數來響應函數調用f(7) 在這種情況下,最相關的函數是void f(const int&i)因此您得到2作為輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM