我有多個類在行爲上有很大不同,但同時共享必須訪問成員變量的通用函數。多個類的共享模板成員函數
所以我想要做的是創建一個模板化的成員函數,以避免額外的複製粘貼代碼重複。
最終的結果應該是這樣的:
ClassA::CallFoo()
ClassB::CallFoo()
ClassC::CallFoo()
其中CallFoo()在像一個共享文件被定義[怪人假想語法]
<template this* T>::CallFoo(){T->memberX->DoStuff();}
是類似的東西可以用C++ ?我似乎無法找到任何有關代碼重用和多個類。
編輯: 我有多個類,ClassA,ClassB,ClassC,... ClassX,所有這些都有一個成員變量memberX。爲了在類的成員函數中使用該成員變量,我必須對該變量進行一些設置和預處理,這對所有類都是相同的。所以ClassA可以有一個方法DoCoolStuff1(),它必須調用[shared code]來獲取更新的共享變量,ClassB可以有一個方法DoBoringStuff1(),它也調用[shared code]。
不幸的是,memberX不在我的源代碼中,而是在庫頭文件ClassA:public LibClass中,所以我不能在那裏覆蓋它。
可不可以給更具體的例子嗎?詳細闡述你正試圖解決的問題,而不是理論。 – GManNickG 2010-10-25 09:43:18
試圖更好地解釋,請參閱編輯... – Coder 2010-10-25 09:56:07
你是說所有這些類都是LibClass類的子類,這就是數據成員所在的位置? – 2010-10-25 10:00:40