在CPP文件中实现并在另一个类中使用的c++结构体
C++ struct that is implemented in CPP file and used in another class
在一个类中实现结构并在另一个类中使用的最佳方法是什么?
Structs.h
struct White{
unsigned char r;
unsigned char g;
unsigned char b;
Color() : r(255), g(255), b(255){}
};
struct Black{
unsigned char r;
unsigned char g;
unsigned char b;
Color() : r(0), g(0), b(0){}
};
White white; //works fine
Black black = {255, 255, 255}; //*error: data member initializer is not allowed!* (because of unsigned char maybe?)
**OR**
Black black; black.r = 255; //*error: this declaration has no storage class or type specifier!*
anotherClass.cpp
#include "Structs.h"
Structs *str = new Structs();
str->white.r //works, is 255
str->black.r //should be 255 too
我看你的设计不对。将"Black"answers"White"定义为不同的类,它们的对象具有RGB值。然后你想要一个有白色值/属性的"黑色"?这听起来就像给汽车下定义,拆掉轮子,给它装上翅膀和320个座位,然后假装波音757仍然是一辆汽车。
您通常需要的内容应该如下:
struct Color {
unsigned char r;
unsigned char g;
unsigned char b;
};
Color black = {0,0,0};
Color white = {255,255,255};
Color blue = {0,0,255};
也许我没有理解这个问题,但我会说演员应该White():…和黑色():……
问题是构造函数应该与struct_name相同
试
struct White{
unsigned char r;
unsigned char g;
unsigned char b;
White() : r(255), g(255), b(255){}
void show(void)
{
cout << "RED: " << r
<< "tGreen: " << g
<< "tBlack: " << b << endl;
}
} white;
struct Black{
unsigned char r;
unsigned char g;
unsigned char b;
Black() : r(0), g(0), b(0){}
void show(void)
{
cout << "RED: " << r
<< "tGreen: " << g
<< "tBlack: " << b << endl;
}
} black;
black.show();
white.show();
相关文章:
- 根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- 包含 std::list 的结构体的 C++ 初始化
- 结构体和类的不同大小(),彼此具有相同的字段类型
- 如何使用结构体的向量数组?
- 如何使用结构体在C++中更改这些代码?
- 无法在 Mosquitto MQTT Broker 插件上访问结构体 mosquitto 的元素
- 我应该如何在C++中使用结构体解决输入失败的问题?
- Qsort() 比较结构体整数的总和
- 如何使用迭代器指向结构体c++的向量
- 在C++中使用链表的堆栈实现中,访问结构体headNode成员count和top会导致运行时错误
- 如何获取结构体成员的地址
- 创建结构体向量,表达式:向量下标超出范围
- boost::任何带有结构体和无符号整数
- 如何在构造函数中初始化结构体的动态数组?
- 只写结构体的某些字段
- C++ push_back() 一个结构体到一个向量中
- C++14 结构体上的统一初始化
- 访问不同类的私有结构体成员