2013-10-30 48 views
1

所以我一直在尋找與下面的聲明一個String頭文件:.cpp的頭文件丟失的變量名

string(const char*); 

如何使用輸入參數,如果有沒有爲它的變量名?另外,有沒有寫點變量名稱。如果你有一個方法需要2個相同類型的參數,我覺得你會被搞砸。但主要問題是我怎麼才能訪問這個輸入參數而沒有變量名。謝謝!

+0

這可能是原型。構造函數最有可能在其他地方用命名參數定義。 – 0x499602D2

回答

4

就編譯器而言,在聲明函數時不需要知道參數的實際名稱。它所需要的只是函數的簽名:返回類型,名稱和參數類型。

當您的定義了函數時,即在源文件中,您只需要參數名稱。

// foo.h 
void foo(const char*); 

// foo.c 
#include "foo.h" 
void foo(const char * c) { 
    //OK 
} 

void bar(const char*) { 
    //Indeed, we have no way to access the parameter 
} 

只要這些簽名匹配,一切都會正常工作。如果這是你的頭文件,通常最好在聲明中包含參數名稱,因爲它是有用的文檔。

+1

順便提一句,如果您實際上不需要該參數(但您必須使用特定的函數簽名,例如用於回調函數或虛函數),則即使在函數定義中也可以省略其名稱。這具有消除有關未使用參數的編譯器警告的優點。 –