*"的值无法分配给类型 " *"的实体-6ren"> *"的值无法分配给类型 " *"的实体-我有一个 C++ 头文件,其中包含命名空间和类: namespace imaging { class Image { protected: Component -6ren">
gpt4 book ai didi

c++ - 类型 "const *"的值无法分配给类型 " *"的实体

转载 作者:行者123 更新时间:2023-12-03 12:50:46 26 4
gpt4 key购买 nike

我有一个 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
}
}

当我尝试实现构造函数时,出现错误:a value of type "const <Component> *" cannot be assigned to an entity of type "<Component> *" :

#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!
}
}

最佳答案

data_ptrconst Component *,而 Image::bufferComponent *

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

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

buffer=const_cast<Component*>(data_ptr);

无论如何,请考虑一下您想要的行为。指针成为 const 是否有任何意义(它不是引用)?

关于c++ - 类型 "const <Component> *"的值无法分配给类型 "<Component> *"的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27134801/

26 4 0