我什么时候应该使用一个struct
而不是一个类?我目前正在使用从OpenGL纹理包装到位图字体的所有类.
我使用的类就像一个struct
(没有使用继承,多态等)仍然比一个慢struct
?
Arm*_*yan 36
您可能知道的C++中的结构和类的不同之处仅在于它们的默认访问级别(以及它们基础的默认可访问性:public为struct,private为class).
一些开发人员,包括我自己喜欢在POD类型中使用结构,即使用C风格的结构,没有虚函数,基数等.结构不应该有行为 - 它们只是放入一个对象的数据集合.
但这自然是风格问题,显然两者都不慢
在我添加之前,我会重复其他人所说的内容,而不是廉价和引用其他问题.
struct
并且class
在C++中是相同的,唯一的例外是struct
具有默认访问权限public
,并且class
具有私有的默认访问权限.性能和语言功能支持完全相同.
但是,惯用法struct
主要用于"哑"类(普通旧数据). class
更多地用于体现真正的阶级.
另外,我还用于struct
本地定义的函数对象,例如:
struct something
{
something() : count(0) { }
void operator()(int value) { std::cout << value << "-" << count++ << "\n"; }
int count;
} doSomething;
std::vector<int> values;
...
std::foreach(values.begin(); values.end(); doSomething);
Run Code Online (Sandbox Code Playgroud)