我有一個簡單的問題,當我寫一個類的.h文件,並且想要傳遞一個不同類型的參數時,它應該如何寫入?C++使用不同的類的參數?
例如:
#include "y.h"
class x
{
public :
void method(y &)
};
在void method
,是這樣嗎?還是應該寫成y::y&
? 當它在.cpp文件中實現時?
我有一個簡單的問題,當我寫一個類的.h文件,並且想要傳遞一個不同類型的參數時,它應該如何寫入?C++使用不同的類的參數?
例如:
#include "y.h"
class x
{
public :
void method(y &)
};
在void method
,是這樣嗎?還是應該寫成y::y&
? 當它在.cpp文件中實現時?
如果你的班級名爲y
那麼你寫的是正確的。 ::
語法用於引用名稱空間或其他類中的名稱。在這種特殊情況下,y::y
將引用y
的構造函數,而不是類本身。
在實現(.cpp)文件中沒有改變 - 名稱y
在兩種情況下引用相同的類。
如果不考慮預選賽揮發性那麼你有以下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是在命名空間中定義一個類的名稱。
這是正確的。爲了清晰/自我記錄,您可能想給參數一個名稱。 – juanchopanza
謝謝!所以在.h和.cpp文件中它們基本上都以相同的方式輸入。 – user3348712
在'.cpp'文件中它應該看起來像'void x :: method(y&p){}' –