グローバルスコープを持つインスタンスを生成したいのですが、クラスの初期化は関数内で行いたいため記述に悩んでいます。
以下のコードのように、引数を持つコンストラクタを持つクラスをグローバル変数として定義するためには、どのようにしたらよいでしょうか?
例えば、swiftでいう「?」に類する機能や、クラスの定義とコンストラクタの実行タイミングを制御する方法などないのでしょうか?
https://qiita.com/Ryosuke-Hujisawa/items/d4d5fe1b79a804b304f6
c++
1#include <iostream> 2 3class MyClass{ 4 private: 5 int val; 6 public: 7 // コンストラクタ 8 MyClass(int newval) : val(newval){}; 9 // 結果確認用 10 void show(){ 11 std::cout << val << "\n"; 12 } 13}; 14 15MyClass cls; // <- コンストラクタに入力値がないためエラー 16 17int main(){ 18 // クラスの初期化 19 // cls(1);? 20 // もちろんここでMyClass cls(1);と書けばローカル内で定義できることはわかるのですが、 21 // pybind11を用いてpythonでラップしたいため、グローバルスコープで定義したいのです。 22 23 // 結果の確認 24 cls.show(); 25}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/31 16:46
2018/12/31 16:52