[プログラミング言語]C/C++(2)-使用
2880 ワード
CとC++を使う時、熟知する基本的な知識が必要です
宣言と定義
宣言:コンパイラが参照する識別子の名前を通知します.
ex)extern int a-グローバル変数の宣言
定義:関数の呼び出しや変数の使用時に生成されるコードを参照し、識別子と名前からコードを生成します.
ex) int a; int b = 10; - 変数の定義
静的(静的変数):グローバル変数を静的と宣言すると、外部からアクセスできません.つまり、宣言されたファイルでのみ使用可能
const:値とアドレスを変更できません.変数を定数にする
Autoタイプ:コンパイラが初期化値に基づいてデータ型を決定するキーワード(タイプ推定-タイプ推定) &、*とともに使用され、コピーではなくアドレスを指したり参照したりします.
struct(構造体):1つ以上の変数をグループ化して新しいデータ型を定義します.
Union(共通エンティティ):すべてのメンバー変数がメモリ領域を共有します.したがって、メンバー変数は一度に1つしか使用できません.
Enum(列挙):新しいタイプを宣言し、そのタイプが持つ可能性のある整数定数値を示すタイプです.
:(範囲演算子):a:::Print()を呼び出すと、a領域のPrint()が呼び出されます.b::Print()を呼び出すと、b領域のPrintが呼び出されます.ただし:
:ポインタは、変数のアドレス値を格納する変数です.
ポインタを宣言するには、変数名に*を付け、変数のアドレス値を取得するには&を付けなければなりません.
:参照値は、変数を参照する変数です.
これらのリファレンスは、主に関数呼び出しに使用されます.(call by reference)
:サブクラスの再定義を許可する関数
:関数名は同じですが、パラメータの個数またはタイプが異なる関数を許可します.
上記のコードを実行すると、次の実行結果が出力されます.
すなわち,関数に渡されるパラメータが何であるかによって,関数が呼び出される.これにより,パラメータの種類と個数が異なると,同名関数の使用が許可されることが分かる.
📋 へんすう
宣言と定義
宣言:コンパイラが参照する識別子の名前を通知します.
ex)extern int a-グローバル変数の宣言
定義:関数の呼び出しや変数の使用時に生成されるコードを参照し、識別子と名前からコードを生成します.
ex) int a; int b = 10; - 変数の定義
静的(静的変数):グローバル変数を静的と宣言すると、外部からアクセスできません.つまり、宣言されたファイルでのみ使用可能
const:値とアドレスを変更できません.変数を定数にする
Autoタイプ:コンパイラが初期化値に基づいてデータ型を決定するキーワード(タイプ推定-タイプ推定)
struct(構造体):1つ以上の変数をグループ化して新しいデータ型を定義します.
Union(共通エンティティ):すべてのメンバー変数がメモリ領域を共有します.したがって、メンバー変数は一度に1つしか使用できません.
Enum(列挙):新しいタイプを宣言し、そのタイプが持つ可能性のある整数定数値を示すタイプです.
:(範囲演算子):a:::Print()を呼び出すと、a領域のPrint()が呼び出されます.b::Print()を呼び出すと、b領域のPrintが呼び出されます.ただし:
📋 ポインタとリファレンス
👉 ポインタ変数
:ポインタは、変数のアドレス値を格納する変数です.
ポインタを宣言するには、変数名に*を付け、変数のアドレス値を取得するには&を付けなければなりません.
int main(){
int* point = NULL; // 선언
int var = 10;
point = &var; // 정의
}
上のコードを見て、&varとpointの値は同じです.👉 リファレンス
:参照値は、変数を参照する変数です.
int main(){
int var = 10;
int& ref = var;
cout << ref << endl;
return 0;
}
運転時出力10.varとrefは同じ値を有し,アドレス値を出力しようとしても同じ値を出力する.つまり、ある変数の別名です.これらのリファレンスは、主に関数呼び出しに使用されます.(call by reference)
📋 過負荷と過負荷
👉 オーバーライド(Override)
:サブクラスの再定義を許可する関数
class car { // 부모 클래스
public:
void func() {
cout << "this is car" << endl;
}
};
class bus : public car { // 자식 클래스
public:
void func() { // 부모 클래스와 같은 함수 정의
cout << "this is bus" << endl;
}
};
int main() {
car a;
bus b;
a.func();
b.func();
return 0;
}
上記のコードを実行することで、サブクラスのfunc関数が変更されたことを決定できます.したがって、オーバーライドは、このような場合のようにサブクラスの内容を変更および再定義できることを意味する.👉 かふか
:関数名は同じですが、パラメータの個数またはタイプが異なる関数を許可します.
void func(void) {
cout << "this is no argument" << endl;
}
void func(int i) {
cout << "this is integer argument" << endl;
}
void func(char c) {
cout << "this is charactor argument" << endl;
}
int main() {
func();
func(1);
func('a');
return 0;
}
上記のコードを実行すると、次の実行結果が出力されます.
すなわち,関数に渡されるパラメータが何であるかによって,関数が呼び出される.これにより,パラメータの種類と個数が異なると,同名関数の使用が許可されることが分かる.
Reference
この問題について([プログラミング言語]C/C++(2)-使用), 我々は、より多くの情報をここで見つけました https://velog.io/@soddong/프로그래밍-언어-CC-2-사용テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol