이것은 내 코드의 모양입니다. 약간 단순화되었습니다. 내가 뭘/궁금해 내가 할 수있는 경우 속성 클래스 생성자에서 인수에 대한 필요성을 제거합니다. 즉 arg가없는 생성자를 호출하고 클래스 항목 변수를 생성자 본문의 일부로 추가하지 않고도 struct 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;
}
그래서 개체의 멤버를 초기화하는 기본 생성자를 설정하고 싶습니까? –
네,하지만 생성자 본문에있는 객체를 초기화하지 않고 –
나는 당신이 무엇을 요구하는지 이해하지 못한다고 생각합니다. 생성자를 사용하여 객체의 인스턴스를 만듭니다. 생성자 본문의 객체를 초기화하지 않습니다. 그곳에서 물건의 멤버를 초기화하십시오. –