2016-05-08 77 views
0

我是一種情況,我試圖實現我不確定的事情是由C++支持的。宏功能的參數

說,例如:

class foo 
{ 
    public: 
    type item1; 
    type item2; 
} 

class fooList 
{ 
    public: 
    foo list; 
    type getFooMember(member) 
    { 
     return list.member 
    } 
} 

有沒有寫一個函數 「getFooMember」 的方法嗎?本質上,我正在編寫一個模板化二進制搜索樹 。我期待存儲相同類型的項目,但是,一個類的對象將按名稱存儲,另一個將按月存儲。我想減少重複的代碼。我能想到的最簡單的解決方法是:

type getFooItemOne() 
{ 
    return list.item1; 
} 
type getFooItemTwo() 
{ 
    return list.item2; 
} 

但是,我添加和搜索功能都是圍繞20日線,我想看看我是否能避免這種情況。

謝謝你們夥計

+1

如果要存儲多個相同類型的項目,則應使用數組或向量來存儲元素。以一般方式訪問它更容易 – vu1p3n0x

回答

1

您正在尋找的語言功能是指向數據成員的指針。其語法是:

type getFooMember(type foo::*member) { 
    return list.*member; 
} 
+0

好:更好的方法通常是採取任意投影。 – Yakk