C ++クラスと構造体の違いは何ですか?

C言語のstructキーワードは、C ++で保持され、拡張されています。C言語では、structにはメンバー変数のみを含めることができ、メンバー関数を含めることはできません。C ++では、構造体はクラスに似ており、メンバー変数とメンバー関数の両方を含めることができます。

struct能包含成员函数吗? 能!

struct能继承吗? 能!!

struct能实现多态吗? 能!!!
#include <iostream>
using namespace std;

struct A
{
public:
    A() { cout << "A construct..." << endl;}
    virtual ~A(){ cout << "A deconstruct..." << endl;}
};

struct B: public A
{
public:
    B() { cout << "B construct..." << endl;}
    ~B(){ cout << "B deconstruct..." << endl;}
};

int main()
{
    A *a = new B();
    delete a;
    return 0;
}
// A construct...
// B construct...
// B deconstruct...
// A deconstruct...

C ++の構造体とクラスは基本的に普遍的であり、いくつかの詳細のみが異なります。

使用 class 时,类中的成员默认都是 private 属性的;而使用 struct 时,结构体中的成员默认都是 public 属性的。
class 继承默认是 private 继承,而 struct 继承默认是 public 继承。
class 可以使用模板,而 struct 不能。

C ++はC言語のstructキーワードを放棄しませんでした。その重要性は、C言語プログラムの開発者に帰属意識を与え、C ++コンパイラを以前にC言語で開発されたプロジェクトと互換性を持つようにすることです。

C ++コードを書くときは、クラスを定義するためにクラスを使用し、構造を定義するために構造体を使用することを強くお勧めします。これにより、セマンティクスがより明確になります。

おすすめ

転載: www.cnblogs.com/vivian187/p/12715588.html