Why should I even consider using structs in C++?
本问题已经有最佳答案,请猛点这里访问。
在C++中声明结构是否有优势?为什么我不应该创建一个只包含数据成员(即没有方法)的类?
谢谢,
当你有一个pod类型的时候,所有公共的东西都保存了一条线…
1 2 3 4 5 | struct Color { int r; int g; int b; }; |
VS
1 2 3 4 5 6 | class Color { public: int r; int g; int b; }; |
对于那些只不过是装东西的哑容器的对象来说,这也是常见的做法。哑的意思是没有构造函数、运算符和方法。
我最喜欢的原因是继承。考虑此代码:
1 2 3 4 5 6 7 | class MyClass : public Base1, public virtual Base2 { public: void fun1() override; private: int m1; }; |
现在用一个结构来考虑这个例子:
1 2 3 4 5 6 | struct MyClass : Base1, virtual Base2 { void fun1() override; private: int m1; }; |
有人说C++过于冗长,但是当检查它们的代码时,它看起来更像第一个例子。我发现
你应该问的问题是"为什么我应该考虑使用C++中的类?",因为imo,结构是相同的,但不那么冗长。