我有一个管理灰度图像的类。我想用 libpng 保存它。为此,我想使用这样的const
成员函数:
void GrayscaleImage::SavePNG(std::string filename) const
{
// ...
png_bytep* row_pointers = new png_bytep[m_height];
for (int i = 0; i < height_; i++) {
row_pointers[i] = const_cast<png_bytep>(m_data.data()) + i * m_width * sizeof(uint8_t);
}
png_set_rows(png_ptr, info_ptr, row_pointers);
// ...
}
问题是第三个参数png_set_rows
是非常量,所以我必须const_cast
在某个时候使用,如果我希望成员函数GrayscaleImage::SavePNG
是const
. 我想知道,这样做安全吗?