Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.128.199.88] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток. Долго думал, как назвать тему, но, к сожалению, лучше не придумал.
Собственно, проблема (класс, интерфейс, методы - все систематически): generic <class T> public interface class MyInterface { T operator *(T); T operator +(T); }; generic<class T> where T : MyInterface<T> public ref class MyClass : MyInterface<MyClass<T>^> { public: //...... virtual MyClass<T> ^operator *(MyClass<T> ^A) { return this; } virtual MyClass<T> ^operator +(MyClass<T> ^A) { return this; } void MyMethod(void) { T a,b,c; c = a*b; //error C2296: '*' : illegal, left operand has type 'T' //error C2297: '*' : illegal, right operand has type 'T' c = a+b; //OK } //...... }; |
Сообщ.
#2
,
|
|
|
Проблема решена. Вместо
c=a*b; c=a->operator *(b); Есть подозрения на сам тип generic (думаю, что там есть определенные операторы *). |