Python には、非常に便利なフラグ クラスがあります。私は c++ の初心者であり、この python 機能を c++ で複製することはできないようです。機能しなかった C++ コードを掲載するのではなく、複製しようとしているものを次に示します。テンプレート、仮想、または ??
要件は、クラスのメンバーを動的に変更できることです。Python では、クラスのdict要素を変更することで、これを可能にします。
パイソンでは:
import sys args = []
... sys.argv[] をループする keys:values で args[] をロードします ... 何とか何とか何とか
クラス フラグ:
def __ init __(self, **args):
自己。__ dict __.update(args)
次に、flag.dynamicproperty を有効にします
flag = Flag(**dict(args))
使用例: $ python script.py somedesc1 someval1 somedesc2 someval2
これにより、上記のようにコマンドラインからパラメーターを渡して、その場で任意の数のパラメーターを割り当て、somval1 を返す flag.property (例: flag.somedesc1) 呼び出しでアクセスできるようになります。 . これについて考えるもう 1 つの方法は、key:value プロパティを C++ クラスに動的に追加することです。
Python コードでの使用例:
if flag.somedesc1 != '10': someval1 を出力
同等のC ++を機能させることができないようです。私はポリモーフィズムを調べましたが、これらは動的に割り当てられ、クラスのプロパティとしてアクセスできる必要があります。
アイデア??? 確かにc ++でこれを行うことができますが、どこから始めればよいかわかりません。