簡體   English   中英

X f()是什么意思?

[英]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.

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