2014-02-25 34 views
0

我有一個簡單的問題,當我寫一個類的.h文件,並且想要傳遞一個不同類型的參數時,它應該如何寫入?C++使用不同的類的參數?

例如:

#include "y.h" 
class x 
{ 
public : 
void method(y &) 
}; 

void method,是這樣嗎?還是應該寫成y::y&? 當它在.cpp文件中實現時?

+1

這是正確的。爲了清晰/自我記錄,您可能想給參數一個名稱。 – juanchopanza

+0

謝謝!所以在.h和.cpp文件中它們基本上都以相同的方式輸入。 – user3348712

+0

在'.cpp'文件中它應該看起來像'void x :: method(y&p){}' –

回答

1

如果你的班級名爲y那麼你寫的是正確的。 ::語法用於引用名稱空間或其他類中的名稱。在這種特殊情況下,y::y將引用y的構造函數,而不是類本身。

在實現(.cpp)文件中沒有改變 - 名稱y在兩種情況下引用相同的類。

0

如果不考慮預選賽揮發性那麼你有以下possibilies

void method(y &); 
void method(const y &); 
void method(y); 
void method(const y *); 
void method(y *); 

宣言

void method(const y); 

聲明相同的功能,

void method(y); 

而且該方法本身可以有限定符const。例如

void method(y &) const; 

此外,如果類名將被隱藏,那麼您可以使用詳細的名稱。例如

void method(class y &) const; 

這個聲明

void method(y::y &); 

是否正確提供的左y是一個命名空間的名稱,右邊y是在命名空間中定義一個類的名稱。

相關問題