c#中反射機制比較常見,而c++中沒有該機制。使用c++實現反射機制,主要利用了工廠模式程序物件的生產。
itest.h
基類test.h
繼承類helper.h
幫助類main.cpp
主函式入口檔案
#pragma once
#include using namespace std;
class itestfactory;
typedef mapmapfactory;
static mapfactory g_mapfactory;
class itest
; virtual void testprint() = 0;
private:
};class itestfactory
virtual itest* intance() = 0;
};
#pragma once
#include "itest.h"
class test: public itest
; void testprint()
private:
};class testfactory :public itestfactory
~testfactory() {};
private:
itest* intance()
return m_ptest;
}};
#pragma once
#include "itest.h"
itest* getclassbyname(string clsname)
else
return pfacory->intance();
}
#include "pch.h"
#include #include "helper.h"
#include "test.h"
int main()
c so 反射 C 實現反射機制
net下的很多技術都是基於反射機制來實現的,反射讓.net平台下的語言變得得心應手。最簡單的,比如列舉型別,我們我可以很容易的獲得乙個列舉變數的數值以及其名稱字串。可是,在c 中,列舉變數本質上和乙個整形變數沒有區別,我們很難獲取乙個列舉變數的名稱字串。其實在c 中,我們可以通過巨集來實現類似反射的...
c so 反射 c 實現反射機制
下午接了個阿里 面試,當時剛剛睡醒,感覺有點懵。大腦莫名當機狀態,很多問題沒有表述清楚,有乙個關於 c 如何實現反射機制的問題,感覺蠻有意思,當時雖然回答了用函式指標和工廠模式,但是表述並不當,細節也沒有想清楚。晚上抽空簡單實現了一發 file name reflector.cpp author x...
C 反射機制的簡單實現
c 並不支援反射機制,只能自己實現。如果需要實現字字串到函式到對映,一定要使用到函式指標。簡單實現反射機制,根據字串來構造相應到類。主要有以下幾點 1 可以使用map儲存字元從到函式指標到對映。2 工廠類提供字串與函式指標到註冊關係。3 工廠模式根據不同到字串構造不同到類物件。示例 class fa...