クラスの基礎、作成者、消滅者
5737 ワード
📒 メンバー関数の外部定義
class A{
public:
int var;
void getVar();
}
void A::getVar(){
cout << var << endl;
}
クラスにメンバー関数が定義されている場合は、ローの関数になります.クラスの外部でメンバー関数が定義されている場合、呼び出し方法は通常の関数と同じです.スタックにパラメータを格納し、戻りアドレスを保存し、メンバー関数への移動を制御します.
💡 UMLでは、メンバー変数または関数の横にある可視性インジケータ+がpublic、-privateを表します.
実線の中空の三角形の矢印は継承を表します.方向テーブルのクラスは親です.
✔ジェネレータから別のジェネレータを呼び出します。
class Car{
int speed;
int gear;
public:
Car(int a, int b){
speed = a;
gear = b;
}
Car(int a){
Car(a,0); //요런식으루
}
💡 ジェネレータでダイナミックメモリ割り当てを行う場合は、必要に応じて消滅者を作成し、メモリを返します.📒 初期化リスト
class Car{
int speed;
int gear;
const int MAX_SPEED;
String& name;
public:
Car(int a, int b, string c): speed(a), gear(b), MAX_SPEED(300), name(c){ //요런식으루
speed = a;
gear = b;
}
Car(int a){
Car(a,0);
}
✔初期化リストを使用する必要があります!!
1.メンバーが定数
ex) Const int MAX_SPEED; 宣言した場合
ここで値を指定すると、コンパイルエラー->オブジェクトが作成されません.
2.メンバーがReferenceの場合
宣言時に参照される変数を決定する必要があるためです.
3.メンバーがオブジェクト
AクラスがBクラスのオブジェクトをメンバー変数として含む場合.
オブジェクトの作成時にジェネレータが呼び出されるため、AクラスからBクラスのジェネレータを呼び出すことはできません.
デバッガジェネレータを呼び出さない場合は、初期化リストを使用する必要があります.
Reference
この問題について(クラスの基礎、作成者、消滅者), 我々は、より多くの情報をここで見つけました https://velog.io/@lkm9709/클래스의-기초-생성자와-소멸자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol