类型为“的值”;常数<;组件>*&引用;无法分配给类型为“的实体”&书信电报;组件>*&引用; 我在C++中有一个头文件,名字空间和一个类: namespace imaging { class Image { protected: Component *buffer; // To index individual channels Image(unsigned int width, unsigned int height, const Component *data_ptr, bool interleaved=false); // Holds the image data } }

类型为“的值”;常数<;组件>*&引用;无法分配给类型为“的实体”&书信电报;组件>*&引用; 我在C++中有一个头文件,名字空间和一个类: namespace imaging { class Image { protected: Component *buffer; // To index individual channels Image(unsigned int width, unsigned int height, const Component *data_ptr, bool interleaved=false); // Holds the image data } },c++,C++,当我尝试实现构造函数时,我得到一个错误:类型为“const*”的值不能分配给类型为“*”的实体。: data\u ptr作为const组件*而Image::buffer作为组件* 通过影响第一个到第二个变量,您将丢弃常量。该属性的全部目的是保护数据,应该通过简单的强制转换将其删除 您可以编辑构造函数参数的类型以删除常量,也可以使用 buffer=const_cast<Component*>(data_ptr); buffer=const\u cast(数据\u ptr); 无论如

当我尝试实现构造函数时,我得到一个错误:
类型为“const*”的值不能分配给类型为“*”的实体。


data\u ptr
作为
const组件*
Image::buffer
作为
组件*

通过影响第一个到第二个变量,您将丢弃
常量
。该属性的全部目的是保护数据,应该通过简单的强制转换将其删除

您可以编辑构造函数参数的类型以删除
常量
,也可以使用

buffer=const_cast<Component*>(data_ptr);
buffer=const\u cast(数据\u ptr);

无论如何,想想你想要的行为。指针是常量(不是ref)有什么意义吗?

data\u ptr
是指向
const
的指针<代码>缓冲区不是。您不能将一个分配给另一个。请创建一个,并在此处逐字发布错误消息。这是一个分配,我有命令不更改头文件,只执行它们,否则没有理由保留它。我也想强制执行一个方法,但当我尝试此方法时。gettermethod()。我得到一个错误,“this”只能用于非静态。这不是一个静态方法,我也尝试了(*this)。[…]和这个->[…]并且得到了相同的错误。如果你愿意帮助我,你可以把你的邮件给我。谢谢:)
buffer=const_cast<Component*>(data_ptr);