为什么我应该考虑在C ++中使用结构?

时间:2016-10-07 21:35:00

标签: c++ class struct

在C ++中声明结构是否有优势?为什么我不应该只创建一个只包含数据成员的类(即没有方法)?

谢谢,

2 个答案:

答案 0 :(得分:5)

当你有一个POD类型,其中一切都是公开的是保存一行......

struct Color {
    int r;
    int g;
    int b;
};

VS

class Color {
public:
    int r;
    int g;
    int b;
};

对于那些只是愚蠢容器的物体来说,这也是常见的做法。愚蠢意味着没有构造函数,运算符,方法。

答案 1 :(得分:3)

我最喜欢的原因是继承。考虑这段代码:

class MyClass : public Base1, public virtual Base2 {
public:
    void fun1() override;

private:
    int m1;
};

现在用结构来考虑这个例子:

struct MyClass : Base1, virtual Base2 {
    void fun1() override;

private:
    int m1;
};

有人说C ++过于冗长,但在检查代码时,它看起来更像是第一个例子。我发现structclass更容易阅读。在我的项目中,我到处使用struct。

你应该问的问题是"为什么我应该考虑在C ++中使用类?",因为IMO,struct是相同的但是不那么详细。