これは私のコードのようです。少し簡略化されています。私がしようとしているのは、プロパティクラスのコンストラクタで引数が不要なことです。つまり、引数なしのコンストラクタを呼び出しても、コンストラクタ本体の一部としてそれらを追加することなく、クラスitem変数に構造体value1アイテム変数を設定することができます。クラスの型である構造体の値の取得
#include <iostream>
using namespace std;
struct value1
{
const int item;
value1(int n) : item(n) { }
};
struct value2 : public value1
{
value2() : value1(55) { };
};
template <class T>
class property
{
public:
property(T stuff);
void print();
private:
int item;
};
template <class T>
property<T>::property(T stuff) : item(stuff.item) { }
template <class T>
void property<T>::print()
{
cout << item << endl;
}
int main()
{
property<value2> *y = new property<value2>(value2());
y->print();
return 0;
}
このように、オブジェクトのメンバーを初期化するデフォルトのコンストラクタを設定したいだけですか? –
はい、コンストラクタのボディにオブジェクトを初期化せずに –
私はあなたが何を求めているのか分かりません。コンストラクタを使用して、オブジェクトのインスタンスを作成します。コンストラクタの本体でオブジェクトを初期化しません。そこにあるオブジェクトのメンバーを初期化します。 –