変数、自動型推論、constexpr
変数を宣言し、autoで型を推論し、値をconstexprにすべき場面を学びます。
「変数、自動型推論、constexpr」はCoddyKit上の無料C++ Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC++ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C++ Academyコースには全4レッスンが含まれています。
変数とは
変数とは、型を持つ名前付きのメモリ領域です。型によって、使用するバイト数とビットの解釈方法が決まります。
明示的な型による宣言
基本的な形式は、type name = value;です。
int age = 30;
double pi = 3.14159;
char grade = 'A';
bool isReady = true;autoキーワード
C++11以降では、コンパイラが初期化子から型を推論できます。コードを簡潔にするためにautoを使用します。特に、イテレーターやテンプレートで役立ちます。
auto count = 42; // int
auto price = 9.99; // double
auto name = std::string("Ada"); // std::stringautoが役立つ場面
次のような場合にautoを使用します。
- 型が長い場合(イテレーターやテンプレートなど)
- 暗黙的な変換を避けたい場合
- 型が初期化子から明らかな場合
autoを避ける場面
読み手にとって推論される型が明らかでない場合は、autoを避けてください。数値リテラルでは、明示的な型のほうが意図を適切に示せることがよくあります。
const:読み取り専用の変数
変更してはいけない変数にはconstを付けます。コンパイラが変更を禁止します。
const int MAX_USERS = 100;
const double TAX_RATE = 0.18;constexpr:コンパイル時定数
constexprはconstよりも厳密です。値がコンパイル時に既知でなければなりません。コンパイラは、コンパイル時定数が必要な場所でその値を使用できます。
constexpr int BUFFER_SIZE = 1024;
constexpr double PI = 3.14159265358979;constexpr関数
すべての処理をコンパイル時に計算できる場合、関数にもconstexprを付けられます。定数の引数で呼び出すと、コンパイル時に結果が得られます。
constexpr int square(int x) { return x * x; }
constexpr int area = square(5); // computed at compile time初期化の形式
C++には、初期化の構文がいくつかあります。現代的なコードでは波かっこ初期化を優先してください。縮小変換を拒否できるためです。
int a = 10; // copy init
int b(10); // direct init
int c{10}; // brace init (preferred)
int d = {10}; // copy-list init縮小変換と波かっこ初期化
波かっこ初期化を使うと、意図しない切り捨てを防げます。以下の例はコンパイルに失敗します。
double d = 3.7;
int a = d; // OK, silently truncates to 3
int b{d}; // ERROR: narrowing conversion変数のスコープ
変数は宣言された時点から、それを囲むブロック({ }の組)の末尾まで存在します。変数は、可能な限り狭いスコープで宣言してください。存続期間が短くなり、バグを減らせます。
確認問題
コンパイラがコンパイル時定数として使用できる値を作成する宣言はどれですか。
まとめ
変数は明示的な型、または型推論を行うautoで宣言します。読み取り専用の値にはconstを、コンパイル時定数にはconstexprを使用します。縮小変換を検出するため、波かっこ初期化を優先してください。
よくある質問
「変数、自動型推論、constexpr」レッスンは無料ですか?
はい。「変数、自動型推論、constexpr」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C++ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C++ Academyコースには全4レッスンが含まれています。
「変数、自動型推論、constexpr」で何を学びますか?
変数を宣言し、autoで型を推論し、値をconstexprにすべき場面を学びます。 ブラウザで直接実行するハンズオンコードでC++ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C++ Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC++ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「変数、自動型推論、constexpr」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC++ Academyレッスンでコードを書いて実行できますか?
はい。すべてのC++ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- C++コンパイラーのセットアップ
- Hello Worldとビルドプロセス
- 変数、自動型推論、constexpr
- 基本演算子と型変換