2013-03-13 58 views
0

我有以下結構的代碼:爲什麼我們可能想要在方法之前放置類名?

aaa::bbb<ccc> 
ccc::func_name(type1 arg1, type2 arg2) 
{ 
    something1; 
    aaa::bbb<ccc> obj_name(variable); 
    something2; 
} 

它類似於函數模板,但在函數模板,我們應該把template <class class_name>的方法之前。

+3

'bbb'被一個叫做'aaa'類或命名空間中定義的。在最近的C++教科書中查找範圍解析運算符'::'。 – 2013-03-13 12:35:25

+0

它看起來像是類「ccc」的類成員'func_name'的定義,返回模板類'bbb ',其中在類或名稱空間'aaa'中定義了替代'ccc'。你是否缺少冒號'ccc:(here)func_name'? – kassak 2013-03-13 12:37:45

+0

冒號添加.... – Dialecticus 2013-03-13 12:42:49

回答

4

aaa::bbb<ccc>是返回值類型ccc::func_name()

4

你的意思是這樣的:

std::vector<Point> 
Point::func_name(type1 arg1, type2 arg2) 
{ 
    something1; 
    std::vector<Point> obj_name(variable); 
    something2; 
} 

它是返回這恰好是一個模板類的實例另一個對象的方法的正常申報。有人顯然認爲它比

std::vector<Point> Point::func_name(type1 arg1, type2 arg2) {...} 

更可讀的,這意味着完全相同

+1

冒號缺少... – Dialecticus 2013-03-13 12:36:54

+0

可能是。哪裏? – 2013-03-13 12:37:31

+0

@ZdeslavVojkovic我已經爲你修好了 – 2013-03-13 12:37:42

相關問題