Template Klasse Frage
-
template <typename T> class basetest: public CObject { void IncObjectSize(){}; void DecObjectSize(){}; protected: T m_var; public: explicit basetest(const T& value): m_var(value) {}; virtual ~basetest() {}; basetest<T>& operator=(const T& value); }; template<typename T> basetest<T>& basetest<T>::operator=(const T& value) { this->m_var = value; return *this; }; class test: public basetest<int> { public: test(): basetest(0) {}; ~test() {}; int get() const { return this->m_var; }; }; // main.cpp test a; a = 100; std::cout << a.get() << std::endl;bekomme Error 1 error C2664: 'test::operator =' : cannot convert parameter 1 from 'int' to 'const test &' Project
bitte mich aufzuklaeren, danke sehrwenn ich folgende aendere, wie findet ihr das
template <typename T1, typename T2> class basetest: public CObject { void IncObjectSize(){}; void DecObjectSize(){}; protected: T1 m_var; public: explicit basetest(const T1& value): m_var(value) {}; virtual ~basetest() {}; T2& operator=(const T1& value); }; template<typename T1, typename T2> T2& basetest<T1, T2>::operator=(const T1& value) { T2 testvar testvar.m_var = value; return testvar; };
-
Du weist dem Objekt deiner Klasse einen Wert zu, das geht nicht. Warum machst du für soetwas einen neuen Thread auf?
-
Kóyaánasqatsi schrieb:
Du weist dem Objekt deiner Klasse einen Wert zu, das geht nicht. Warum machst du für soetwas einen neuen Thread auf?
kannst bitte genauer erklaeren? warum geht nicht, zuweisungsoperator is doch vererbt.
@neuer thread, ich dachte neue fragen, neuer thread, hab irgendwo gelesen, aber wenn das nicht der fall is, sorry.
-
JnZn558 schrieb:
kannst bitte genauer erklaeren? warum geht nicht, zuweisungsoperator is doch vererbt.
weil der op= von test den op= von basetest verdeckt