所以,我碰到,我不太明白,它沿着線去一個有趣的方法來簽名理解是用作參數的「class」關鍵字,爲什麼它在那裏?是否有必要指定或純粹膚淺?C++類作爲參數的方法,而不是模板
回答
這是該類的前向聲明。這是實際上是相同的
class SomeClassName;
void Initialize(std::vector<std::string> & param1, SomeClassName * p);
有其正向的聲明是有用的許多情況;在this answer to another question中有一個你可以做和不可以做的前向聲明的事情清單)。
它是否作爲前向聲明呢? – ra170 2010-05-14 18:50:35
@ ra170:是的,它的確如此。 – 2010-05-14 18:53:48
「,但你需要使用指針或引用類的實例」 - >如果你只是有一個非定義函數聲明就像在這種情況下,你可以很好地處理值參數。 – 2010-05-14 23:30:44
最膚淺。在C中,當你定義一個結構時:
struct x {
int member;
char member2;
};
要使用它,你必須使用struct x whatever
。如果你想通過自己使用x
作爲一個名稱(不帶它前面struct
),你必須使用一個typedef
:
typedef struct x {
int member;
char member2;
} x;
在C++中,然而,第一(不typedef
)具有大致相同的效果第二個(都定義爲x
,因此您可以單獨使用它,而不是前面的struct
)。在C++中,class
基本上與struct
相同,只是它默認爲private
而不是public
(對於成員和繼承)。
唯一有差別的地方是在函數聲明的位置上沒有定義範圍內的class
。
- 1. 作爲模板參數的C++方法
- 2. 作爲基類的C++模板參數
- 3. 爲什麼void *作爲模板參數而不是模板參數?
- 4. 將類作爲模板參數,並將類構造函數的參數作爲方法參數的方法
- 5. 作爲模板參數的C++模板
- 6. 作爲模板參數的模板類
- 7. C++類模板可以將方法名稱作爲模板參數嗎?
- 8. C++同級模板類作爲模板模板參數
- 9. 將模板類作爲參數傳遞給類方法並使用模板類作爲矢量模板類型
- 10. C#類類型作爲方法參數
- 11. C++使用模板類指針作爲模板參數而不給它一個參數
- 12. 傳遞模板類作爲方法的參數
- 13. 將方法的簽名作爲模板參數傳遞給類
- 14. C++ 11/14/17:模板類指針作爲模板參數
- 15. C++使用'this'作爲不允許的類型模板參數
- 16. C++方法名稱作爲模板參數
- 17. 調用模板方法只允許子類作爲參數
- 18. 使用模板類作爲方法參數
- 19. 使用模板模板類參數作爲參數
- 20. 模板類作爲模板參數默認參數
- 21. C++模板顯式實現,模板參數是類模板
- 22. C++類模板是一個模板:模板參數無效
- 23. 最好的方法來創建一個模板方法(對於單例類),接收模板類作爲參數
- 24. 作爲模板參數的嵌套類
- 25. 使用模板類的嵌套類型作爲模板參數
- 26. C++數組作爲模板參數
- 27. 以模板類爲參數的C++模板函數
- 28. 如何使用類的模板參數作爲類成員的模板參數?
- 29. 從模板類的方法調用類型參數的方法(C++)
- 30. C++模板功能 - >傳遞一個模板類作爲模板參數
我在一類成員認爲這是很好宣言和我瘋了試圖找出它的含義。 'Foo類{ private: class Bar * pointerToBar; }' – Vicro 2015-02-26 09:20:45