Byr*_*ron 14 c++ arrays templates compiler-errors
我有一个非常简单的程序,用于在数组模板类中定义*运算符.当我尝试编译它给我一个错误"非法间接".任何有关此事的帮助将不胜感激!
这是运营商的定义:
template <typename T>
NumericArray<T> NumericArray<T>::operator * (const int factor) const
{
NumericArray<T>* TempArray2 = new NumericArray<T>(Size());
for (int i=0; i<Size(); i++)
{
*TempArray2[i] = ((GetElement(i))*(factor));
}
return *TempArray2;
}
Run Code Online (Sandbox Code Playgroud)
这是测试主要功能的实现:
cout<<((*intArray1)*5).GetElement(0);
cout<<((*intArray1)*5).GetElement(1);
cout<<((*intArray1)*5).GetElement(2);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Jos*_*eld 14
不要忘记您的运营商优先规则.看来你想要:
(*TempArray2)[i]
Run Code Online (Sandbox Code Playgroud)
否则你的表达式*TempArray2[i]被认为是*(TempArray2[i]),我想你的NumericArray<T>类型没有一元运算 *符重载.
| 归档时间: |
|
| 查看次数: |
34844 次 |
| 最近记录: |