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;
}
記事メニュー
目安箱バナー