【发布时间】:2011-12-21 16:07:56
【问题描述】:
我正在为一个奇怪的错误苦苦挣扎一段时间,我需要你的帮助 :D
我有一个像
一样声明的“图像”类template <typename P>
class Image {
// ...
public: // Operators
Color<P>*& operator [] ( unsigned int const& i );
// ...
}
由于这是我第一次重载这个运算符,我不太确定(尤其是 *& 部分......)
当我尝试类似的东西时出现问题:
/// Sample Code
Image<P> img; img[0][0] = Color<double>(1.0, 1.0, 1.0);
我明白了
./src/Graphics/PNGWriter.cc:12:3: error: no match for ‘operator[]’ in ‘img[0]’
./src/Graphics/Image.cc:24:12: note: candidate is: Color<P>*& Image<P>::operator[](const unsigned int&) [with P = double] <near match>
显然,我的解决方案更加晦涩难懂...
有什么想法吗?
谢谢!
【问题讨论】:
-
Color
是否有重载的 operator[]?
-
不,为什么会有一个(我的意思是,它可以索引 RGB 分量,但特别是针对这个问题)?
-
你用的是什么编译器?请发布完整、简洁的minimal sample 以重现该行为。
标签: c++ overloading operator-keyword subscript