努力理解"成员初始化"
Struggling to understand 'member initializing'
我一直在使用C++。我很难理解成员初始化,尤其是一行代码。考虑以下程序;
#include <iostream>
#include <cstdint>
class RGBA
{
private:
uint8_t m_red = 0;
uint8_t m_green = 0;
uint8_t m_blue = 0;
uint8_t m_alpha = 255;
public:
***RGBA(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha = 255):
m_red(red), m_green(green), m_blue(blue), m_alpha(alpha)***
{
}
void print()
{
std::cout << "r = " << static_cast<int>(m_red) << " g = " << static_cast<int>(m_green) << " b = " << static_cast<int>(m_blue) << " a = " << static_cast<int>(m_alpha) << 'n';
}
};
我把我有问题的代码行加粗了("public"中的第一个声明)我的问题是,为什么我必须声明alpha为255,而我不必声明红绿或蓝色为0,而我必须在私有部分中声明它们。
请有人向我解释一下,甚至更好地解释一下成员初始化的概念。谢谢你,非常感谢你的帮助。
int main()
{
RGBA teal(0, 127, 127);
teal.print();
return 0;
}
RGBA,A组件用于alpha,它是透明的。如果您将其设为0,则您的图像或其他内容将完全透明/不可见。将其设置为255(最大值)意味着RGB颜色不会受到影响。
相关文章:
- C++成员初始化
- c++构造函数成员初始化:传递参数
- C++正确的指针成员初始化
- 将另一个类的对象传递到当前类C++的构造函数中(不是成员初始化)
- WinLamb 错误:成员初始化非法
- 使用其他成员初始化结构的成员?
- C++模板类静态成员初始化
- 解释了构造函数成员初始化列表
- 如何在成员初始化列表中声明共享指针
- C++入门5版:使用get成员初始化另一个与shared_ptr无关的对象
- C++11 默认类成员初始化与初始值设定项列表同时
- 调用非默认构造函数作为成员初始化
- C++模板成员初始化:用右值移动构造,但用左值移动引用
- 类成员初始化C++
- 在成员初始化列表中,我可以创建对列表中不在列表中的成员变量的引用
- C :(不重复)积分静态成员初始化(不仅是声明!),导致链接器错误,原因
- 如何调用成员初始化器列表中参考成员的构造函数
- C 构造函数采用成员初始化器
- 与其他静态const成员初始化静态常量成员
- 静态内联成员初始化顺序