[ゲームをするので日記を書く]C++(3)OPP 3


たけいせい
-オーバーロード:関数の再使用
-上書き:親を継承する関数を、関数の再定義子クラスで再定義します.
class Robot :BatterySize(100)
{
public: 
	int _batterySize 
public: 
	void BatterySizeUp() 
    { 
    cout<<"배터리가 늘어났습니다"<<endl;  
    }	
    void BatterySizeUp(int upSize)
    { 
    cout<<"배터리가 늘어났습니다"<<endl; 
    }
}
前述したように、同じ名前で関数をパラメータまたはタイプに変換し、オーバーロードと呼ぶ.
//오버라이딩
class Robot :BatterySize(100)
{
public: 
	int _batterySize 
public: 
	void BatterySizeUp() 
   	{ 
    	cout<<"배터리가 늘어났습니다"<<endl; 
    	}
}
class RecentRobot : Robot
{
	void BatterySizeUp() 
   	{ 
    	cout<<" 최신배터리로 바뀌어 용량이 커졌습니다"<<endl; 
    	}
}
上記のように、親クラスで使用される関数をoverlightとして再定義します.
初期化リスト
継承関係で必要な親ジェネレータを呼び出すために使用します.
他のレベルからレベルを持ってきたとき、次の2つの法則で設計します.
--I-A関係(ex:猫は動物ですか?YES->継承関係)
(間違ったex:猫は爪ですか?NO->含む関係(Has-A)
--ハイス-A関係(猫は爪がありますか?)YES->包含関係
class claws
{
Claws(){ cout<<"발톱이 자랐습니다"<<endl }; // claws생성자
Claws(int tall){ cout<<"발톱이"<< tall<<"만큼 자랐습니다" <<endl }
~Claws(){ cout<<"발톱이 다자랐습니다"<<endl }; // claws소멸자
}

class Cat
{
	Cat()
    {
    	_age = 4;
    }
	int _age;
    
    public:
    Claws _claw;
}
上記のコードでは、Clows()とClows(int tall)でコンストラクション関数を2回呼び出すときに問題が発生しないように、以下の初期化でコンストラクション関数を1つだけ呼び出すことができます.
衛生聖人Cat()でtall値を初期化すると
	Cat() : _claw(20)
    {
    	_age = 4;
    }
基本ジェネレータを読み込むと、呼び出しのためにClaws(int tall)が停止し、指定されます.