programmeur aihser
クラスと構造体の違い
最終更新:
匿名ユーザー
-
view
クラスと構造体の違い
結論:構造体もクラスも、アクセス制限のデフォルト値が異なる程度の違いしかない。
初期化について:
構造体でもクラスでも、コンストラクタを持つと、簡易な初期化ができなくなる。
構造体でもクラスでも、コンストラクタを持つと、簡易な初期化ができなくなる。
#define STRUCT_HAS_CONSTRUCTOR
#define CLASS_HAS_CONSTRUCTOR
struct S
{
int x;
int y;
#ifdef STRUCT_HAS_CONSTRUCTOR
S(void)
: x(110), y(20)
{
}
#endif
};
class C
{
public:
int x;
int y;
#ifdef CLASS_HAS_CONSTRUCTOR
public:
C(void)
: x(30), y(40)
{
}
#endif
};
int main()
{
#ifdef STRUCT_HAS_CONSTRUCTOR
S s;
#else
S s = {1, 2};
#endif
#ifdef CLASS_HAS_CONSTRUCTOR
C c;
#else
C c = {3, 4};
#endif
return 0;
}