我有一個類,其中包含由vector< vector<Node> >
實現的樹結構,其中Node
包含一組通過getters/setter公開的屬性。使用成員函數打印對象
class Tree
{
vector< vector<Node> > mGrid;
printTree(std::ostream& output = std::cout);
};
class Node
{
double property1 { return mProp1; }
double property2 { return mProp2; }
};
printTree()
目前硬財產使用TSTEP:
void Tree::printTree(ostream& output)
{
...
for (unsigned t = 0; t < mGrid.size(); ++t)
{
toPrint = "";
for (unsigned state = 0; state < mGrid[t].size(); ++state)
{
toPrint += to_string_with_precision(mGrid[t][state].tstep(), 1);
...
有一些華而不實/方便/面向對象推廣這一功能的方式,以便它可以打印出任何節點的屬性(而不僅僅是吐出硬連線的tstep()屬性,或者通過if/then語句實質上做同樣的事情)。
我做過的事情像這在C中使用函數指針,但這是C++和C++常見問題解答說不要亂指向成員函數的指針。
你真的想要什麼(我認爲)是「反射」 - 這還不是C++標準的一部分。 : - /這可能會讓你感興趣:https://meetingcpp.com/index.php/br/items/reflections-on-the-reflection-proposals.html –
尋求調試幫助的問題(「爲什麼這段代碼不工作? 「)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建[mcve]。使用「編輯」鏈接來改善你的*問題* - 不要通過評論添加更多信息。謝謝! – GhostCat