c 實現反射機制

2021-09-22 16:50:42 字數 1077 閱讀 7360

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...