這就是我的代碼的樣子。它有點簡化。我試圖/想知道如果我能做的是消除在屬性類構造函數中的參數的需要。即調用一個無參數構造函數,並且仍然能夠使用struct value1 item變量填充類項變量,而無需將它們作爲構造函數體的一部分添加。從一個類型的結構中獲取值
#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;
}
所以你只是想建立一個初始化對象的成員默認構造函數? –
是的,但沒有在構造函數的主體中初始化對象 –
我想我不明白你在問什麼。您使用構造函數來創建對象的實例。你不會在構造函數的主體中初始化一個對象。你初始化那裏的對象的成員。 –