Beim Kompilieren der folgende:Standardzuweisungsoperator für Template-Klasse mit verschiedenen Template-Parameter
template <class T>
class Number
{
private:
T num;
public:
Number() {}
Number(T n) : num(n) {}
operator T() const { return num; }
};
int main()
{
Number<int> n=5;
Number<char> c=4;
int i;
c=int(5);
i=n;
c=n;
return 0;
}
Der Compiler an der dritten Zuweisung klemmt sagen es keine Übereinstimmung für operator=
in c=n
ist. Sollte nicht n
in int
konvertiert werden, die wiederum c
zugeordnet werden?
'Templates Klasse ist als char 'aufgebaut - ich habe große Probleme herauszufinden, was Sie dort meinen. Eine Klasse, die als _char_ konstruiert wird? – sehe
'n' ist als' int' aufgebaut. Es hat einen "int" -Operator. 'c' kann' int' zugewiesen werden. Übrigens, es funktioniert auch nicht anders, also versucht das Problem nicht, 'int' dem' char' zuzuordnen. – baruch
Können Sie bitte klären? Ich verstehe nicht, was das Problem ist. – baruch