类和许多可以访问其私有数据的函数
Class and a lot of functions that can access it's private data
我正在编写一个C++程序,该程序读取.bmp文件并创建一个表示图像的动态2D像素数组[1]。该信息存储在类 Image[2] 实例中。
因此,我希望具有将一些颜色效果应用于图像的函数,但我希望只有这些函数能够访问 Image 的私有变量。
Image 类必须能够在没有颜色效果的情况下工作,因此它们不能是类的函数(内联),但 Image 类也没有任何 getter 或 setter。我想到了一个朋友函数,但这意味着我必须手动列出每个函数。如果有人能帮助我解决问题,我将不胜感激!
[1]
struct Pixel
{
unsigned char Red;
unsigned char Blue;
unsigned char Green;
unsigned char Unused;
};
[2]
class Image
{
public:
Image();
~Image();
bool Open(char*);
void Close();
bool Save();
private:
bool good;
Pixel** loadedImage;
char* filePath;
};
似乎最明智的方法是创建一个具有静态成员的类,然后将该类设置为Image的友元类。因此,例如,
class Bitmap {
...
friend class ImageHandler;
}
class ImageHandler {
static void Manipulate();
}
void ImageHandler::Manipulate() {
// now you can access all of the private vars of Pixel.
}
void Pixel::SomeFunction() {
ImageHandler::Manipulate();
}
相关文章:
- 链表,反向函数,数据结构
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 如何在c++中定义以struct为数据成员的类中的构造函数
- 具有多个模板的模板函数,用于特定数据类型(如字符串)?
- 从函数返回任意简单类型的数据
- 友元函数无法访问私有数据成员 (c++)
- 访问和打印元组中的数据,并使用 C++14 使用模板函数显示数据
- 为什么我们使用在C++中返回数据结构的函数?
- 从模板创建通用打印函数,以打印基元数据类型变量的值
- 重写函数不打印基类数据
- 修改链表主函数代码,用户将在其中输入节点的索引和数据以及正确的消息
- 接受函数在发送数据包时等待
- 使用 pybind11 调用 Python 函数时避免复制输入数据
- C++中是否有用于长数据类型的 lower_bound() 函数?
- 在线程函数中处理数据向量时进行线程竞速
- 虚拟成员函数的定义是否强制在同一转换单元中动态初始化静态数据成员?
- 查找存储在二叉搜索树的所有非叶子中的数据总和?(返回整数的独立递归函数
- 在 C++ 中,默认情况下构造函数为类的数据成员提供的值是多少?
- 喃喃自语/谷歌protobufs客户端读取数据函数错误