はじめに これは株式会社ビットキー Advent Calendar 2022 2日目の記事です。 本記事ではC言語でカプセル化を実現するための実装パターンを紹介します。 想定読者としているのは、C言語のポインタの扱いが分かるくらいの初学者で、かつ何かしらのオブジェクト指向プログラミングがサポートされた言語に習熟している方です。 C言語でのオブジェクト指向プログラミングの実践 今日のソフトウェア開発ではオブジェクト指向分析設計が不可欠ですが、オブジェクト指向プログラミングの実践にあたって言語仕様のサポートは必須ではありません。私の体験ベースでは、C言語が使われるプロジェクトでもオブジェクト指向分析設計が用いられることがほとんどでした。 C言語は言語仕様レベルではオブジェクト指向プログラミングをサポートしていません。言い換えると、C言語にはオブジェクト指向分析設計におけるオブジェクトを画一的に
![C言語におけるカプセル化の実装パターン - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/d5a85d61b12133cf5d526943454bd83d517434a3/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-f625e957b80c4bd8dd47b724be996090.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9QyVFOCVBOCU4MCVFOCVBQSU5RSVFMyU4MSVBQiVFMyU4MSU4QSVFMyU4MSU5MSVFMyU4MiU4QiVFMyU4MiVBQiVFMyU4MyU5NyVFMyU4MiVCQiVFMyU4MyVBQiVFNSU4QyU5NiVFMyU4MSVBRSVFNSVBRSU5RiVFOCVBMyU4NSVFMyU4MyU5MSVFMyU4MiVCRiVFMyU4MyVCQyVFMyU4MyVCMyZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDbWlkZGxlJnM9OTUxZjRkMTkzNmUyOTQ0NzUxYmQ3MTIxYWIyODEyYTU%26mark-x%3D142%26mark-y%3D151%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwcWlpdGEtZGUtZ2lpZGElMjBpbiUyMCVFNiVBMCVBQSVFNSVCQyU4RiVFNCVCQyU5QSVFNyVBNCVCRSVFMyU4MyU5MyVFMyU4MyU4MyVFMyU4MyU4OCVFMyU4MiVBRCVFMyU4MyVCQyUyMCUyRiUyMEJpdGtleSUyMEluYy4mdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zMiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTBkYTYwN2I3NzYwMmZkNDg1MTg2NGJjNjNmNDhlOGRj%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D7051eb72b01b3dbc47eec92fcd12e004)