C++ 利用多態計算1-n的和

C++兩大核心思想:面向對象和泛型編程

面向對象的三大特性:封裝,繼承,多態

無論是實際項目還是面試中,多態都是隨處可見。----------------爲什麼呢?-----------------因爲它很牛逼

code:

#include<iostream>
using namespace std;

class Bass
{
public:
	Bass()
	{	
	}
	virtual int GetSum(int n)
	{
		return 0;
	}
};
Bass *gRun[2] = {NULL};

class Calculate:public Bass
{
public:
	Calculate()
	{}

	int GetSum(int n)
	{
		return gRun[!!n]->GetSum(n - 1) + n;  //!!雙重否定表肯定,在C/C++中0表示假(false:0),非零表示真(true:1)
					//假設n=100, n爲true則!n=0,那!!n=1(對於一個非0的數,!!n==true==1)
					//假設n=0,  n爲false則!n爲真=1,!!n爲假=0
	}

};

int main()
{
	Bass bass;
	gRun[0] = &bass;
	Calculate cal;
	gRun[1] = &cal;
	int sum = cal.GetSum(100);
	cout << "sum = " << sum << endl;  //sum = 5050
	system("pause");
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章