无法将类型的值分配给类型的实体

时间:2014-11-25 19:13:40

标签: c++

我在c ++中有一个带有命名空间和类中的头文件

namespace imaging{
   class Image
    {
                                       // to index individual channels
    protected:
        Component * buffer;                          // Holds the image data
 Image(unsigned int width, unsigned int height, const Component * data_ptr, bool interleaved=false);
    }
  }

当我尝试实现构造函数时,我得到一个错误,无法将类型的值赋给类型的实体。

#include Image.h
namespace imaging 
{
Image::Image(unsigned int width, unsigned int height, const Component * data_ptr, bool interleaved=false)
    {
        this->height=height;
        this->width=width;
        buffer=data_ptr;  // The error is here!!
    }
}

1 个答案:

答案 0 :(得分:0)

data_ptrconst Component *Image::bufferComponent *

通过影响第一个到第二个,您将丢弃const。该属性的重点是保护数据,应该通过简单的转换来删除它。

您可以编辑构造函数参数的类型以删除const或使用

buffer=const_cast<Component*>(data_ptr);

无论如何,请考虑您想要的行为。指针是const是否有任何感觉(它不是参考)?