主にpythonのバックグラウンドから来ているので、C ++で型を操作するのに多少苦労しました。
異なる型をパラメーターとして受け取るいくつかのオーバーロードされたコンストラクターの1つを介してクラス変数を初期化しようとしています。auto
キーワードの使用は変数の自動宣言に使用できることを読みましたが、私の場合、コンストラクターが選択されるまで初期化されません。しかし、コンパイラーは初期化しないことに満足していませんvalue
。
class Token {
public:
auto value;
Token(int ivalue) {
value = ivalue;
}
Token(float fvalue) {
value = fvalue;
}
Token(std::string svalue) {
value = svalue;
}
void printValue() {
std::cout << "The token value is: " << value << std::endl;
}
};
Pythonでは、次のようになります。
class Token():
def __init__(self, value):
self.value = value
def printValue(self):
print("The token value is: %s" % self.value)
auto
このシナリオでキーワードを使用する正しい方法は何ですか?完全に別のアプローチを使用する必要がありますか?
auto
クラスのメンバーにはまったく使用できないと思いますか?関連するが古くなった質問:「自動」メンバー変数を持つことは可能ですか?