はじめに
プログラミングで、「学生」の情報を管理したい場合、「学生番号(int型)」、「氏名(string型)」、「平均点(double型)」のように、複数の異なるデータが関連し合っています。これらの変数をバラバラに管理するのは非効率です。
C++の「構造体 (struct)」を使えば、これらの関連するデータを一つの「学生」というオリジナルの型として、ひとまとめにできます。
この記事では、構造体の基本的な使い方を、①定義 → ②変数宣言 → ③メンバへのアクセス → ④初期化・代入 というステップで、初心者にも分かりやすく解説します。
1. 構造体(型)の定義
まず、struct キーワードを使って、どのようなデータで構成されるのか、型の「設計図」を定義します。構造体を構成する各変数を「メンバ」と呼びます。
// 「学生」構造体の定義
struct Student {
int id; // 学生番号 (メンバ)
std::string name; // 氏名 (メンバ)
double average; // 平均点 (メンバ)
};
解説: Student という新しい型を定義しました。この型は、int, std::string, double という3つのメンバで構成されます。定義の最後のセミコロン ; を忘れないようにしましょう。
2. 構造体変数の宣言とメンバへのアクセス
定義した構造体(型)を使って、実際にデータを格納するための変数(実体)を宣言します。メンバにアクセスするには、ドット演算子 (.) を使います。
サンプルコード
#include <iostream>
#include <string>
using namespace std;
// 「学生」構造体の定義
struct Student {
int id;
string name;
double average;
};
int main() {
// 構造体「型」から、構造体「変数」を宣言
Student student1;
// ドット(.)を使って、各メンバに値を代入
cout << "学生番号を入力してください: ";
cin >> student1.id;
cout << "氏名を入力してください: ";
cin >> student1.name;
cout << "平均点を入力してください: ";
cin >> student1.average;
// メンバの値を参照して表示
cout << "\n--- 入力された学生情報 ---" << endl;
cout << "学生番号: " << student1.id << endl;
cout << "氏名: " << student1.name << endl;
cout << "平均点: " << student1.average << endl;
return 0;
}
解説: student1.id のように、構造体変数名.メンバ名 という構文で、特定のメンバに値を代入したり、値を読み取したりできます。
3. 構造体の初期化と代入
構造体変数は、宣言と同時に初期化したり、他の構造体変数の内容を丸ごとコピー(代入)したりすることもできます。
サンプルコード
#include <iostream>
#include <string>
using namespace std;
struct Student {
int id;
string name;
double average;
};
int main() {
// 1. 初期化子リストを使って、宣言と同時に初期化
Student studentA = {101, "佐藤", 85.5};
// 2. 別の変数を宣言
Student studentB;
// 3. studentA の内容を studentB に一括で代入(コピー)
studentB = studentA;
// コピーされた内容を確認
cout << "コピーされた学生Bの情報" << endl;
cout << "学生番号: " << studentB.id << endl; // -> 101
cout << "氏名: " << studentB.name << endl; // -> 佐藤
cout << "平均点: " << studentB.average << endl; // -> 85.5
return 0;
}
解説:
Student studentA = {101, "佐藤", 85.5};: 波括弧{}を使った初期化子リストで、宣言時に各メンバの初期値をまとめて設定できます。値は構造体で定義されたメンバの順序に対応します。studentB = studentA;: 代入演算子=を使うと、studentAの全てのメンバの値が、studentBの対応するメンバに一括でコピーされます(メンバワイズコピー)。
まとめ
今回は、C++の構造体 struct の基本的な使い方を網羅的に解説しました。
structを使って、複数の異なる型の変数をまとめた独自のデータ型を定義できる。- メンバへのアクセスにはドット演算子 (
.) を使う。 - 初期化子リスト (
{...}) で、宣言と同時に値を設定できる。 - 同じ型の構造体変数同士は、
=で一括代入できる。
構造体は、関連するデータを構造化して管理するための、C++プログラミングにおける最も基本的なツールの一つです。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
