Вместо того, чтобы удешевлять и ссылаться на другие вопросы, я повторю то, что сказали другие, прежде чем добавить к ним.
struct
и class
идентичны в C ++, единственномИсключением является то, что struct
имеет доступ по умолчанию public
, а class
имеет доступ по умолчанию private.Поддержка производительности и языковых возможностей идентична.
Идиоматически, однако, struct
в основном используется для «тупых» классов (plain-old-data).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);