[英]What does X f() mean?
我看到了這段代碼,但我不明白它的含義。 我知道我們如何使用默認構造函數,但這不是默認構造函數。 這是什么?
class X
{
...
};
int main()
{
X f();
}
它聲明一個不帶參數的函數f
,並返回類型X
這在C ++中也稱為“ 最煩人的解析” 。 它是C ++標准定義聲明的解釋規則的方式的副產品。
假設您聲明一個函數:
int Random();
並使用它:
int main()
{
int n;
n = Random();
}
但是在main
之后實現Random函數。 或假定在某些標頭中定義了Random
函數。 您需要指示編譯器Random
是在某些其他源文件或某些庫中實現的函數。
因此,表達式類似於:
T foo();
總是向編譯器發出指令,即有一個名為foo
的函數返回T
它不能是類型T
的對象。
其名稱為f
函數聲明
X f();
^ ^ function
return type
函數f()
不帶參數,並返回X
類對象。
例如,其定義可以是:
class X{
int i;
// other definition
}
X f(){
X x;
// some more code
return x;
}
在主要方面,您可以這樣使用:
int main(){
X a = f();
int i = f().i;
}
這是一個不帶任何參數並返回X類對象的函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.