class test | |
{ | |
public: | |
float operator[]( int index ) | |
{ | |
return testFloat[index]; | |
} | |
private: | |
float testFloat[3]; | |
}; | |
template < class typeA > float | |
operator*( | |
typeA a, | |
float b | |
) | |
{ | |
return a[0] * b; | |
} | |
template < class typeB > float | |
operator*( | |
float a, | |
typeB b | |
) | |
{ | |
return a * b[0]; | |
} | |
template < class typeA, class typeB > float | |
operator*( | |
typeA a, | |
typeB b | |
) | |
{ | |
return a[0] * b[0]; | |
} | |
int main( void ) | |
{ | |
test aTest; | |
float bTest; | |
float result; | |
result = aTest * bTest; | |
result = bTest * aTest; | |
return 0; | |
} |