??C????写???????????????????????
????????????? ???????[ 2017/3/7 11:25:38 ] ??????????????????? C????
???????????????????????????????????????锟�????????????????????????????????????????谓????C???????????????????????????C++????????????????????????????????????????锟�????????锟�?????C????写???????????
?????????????????????????????????????????????????????????搴�??????????奴??????o??澹�???妫�????????????C++?????????????????谐???????????写??????????????????????????
???????????????????????????????????????????????????????渭???????????????????????????????????????????????
??????????
//Car.h
#ifndef CAR_H_
#define CAR_H_
typedef enum CarType_E
{
CAR_TYPE_BENZE = 0??
CAR_TYPE_BMW ??
CAR_TYPE_AUDI ??
CAR_TYPE_NONE ??
}CarType_E;
class BaseCar
{
public:
BaseCar(CarType_E CarType);
virtual ~BaseCar();
virtual void CarSpeaker();
CarType_E _CarType;
};
class BenzeCar : public BaseCar
{
public:
BenzeCar(CarType_E CarType);
~BenzeCar();
public:
void CarSpeaker();
};
class BMWCar : public BaseCar
{
public:
BMWCar(CarType_E CarType);
~BMWCar();
void CarSpeaker();
};
class AudiCar : public BaseCar
{
public:
AudiCar(CarType_E CarType);
~AudiCar();
void CarSpeaker();
};
class CarFactory
{
public:
BaseCar* createNewCar(CarType_E CarType);
};
#endif /* CAR_H_ */
?????????
//Car.cpp
#include "Car.h"
#include <iostream>
using namespace std;
BaseCar::BaseCar(CarType_E CarType) : _CarType(CarType)
{
printf("BaseCar create
");
}
BaseCar::~BaseCar()
{
printf("BaseCar delete
");
}
void BaseCar::CarSpeaker()
{
std::cout << "BeBu! BeBu" << endl;
}
BenzeCar::BenzeCar(CarType_E CarType) : BaseCar(CarType)
{
printf("BenzeCar create
");
}
BenzeCar::~BenzeCar()
{
printf("BenzeCar delete
");
}
void BenzeCar::CarSpeaker()
{
printf("BeBu! BeBu! BenzeCar Car??Type:%d
"?? _CarType);
}
BMWCar::BMWCar(CarType_E CarType) : BaseCar(CarType)
{
printf("BMWCar create
");
}
BMWCar::~BMWCar()
{
printf("BMWCar delete
");
}
void BMWCar::CarSpeaker()
{
printf("BeBu! BeBu! BMWCar Car??Type:%d
"?? _CarType);
}
AudiCar::AudiCar(CarType_E CarType) : BaseCar(CarType)
{
printf("AudiCar create
");
}
AudiCar::~AudiCar()
{
printf("AudiCar delete
");
}
void AudiCar::CarSpeaker()
{
printf("BeBu! BeBu! AudiCar Car??Type:%d
"?? _CarType);
}
BaseCar* CarFactory::createNewCar(CarType_E CarType)
{
BaseCar* newCar = NULL;
switch(CarType)
{
case CAR_TYPE_BENZE:
{
newCar = new BenzeCar(CAR_TYPE_BENZE);
break;
}
case CAR_TYPE_BMW:
{
newCar = new BMWCar(CAR_TYPE_BMW);
break;
}
case CAR_TYPE_AUDI:
{
newCar = new AudiCar(CAR_TYPE_AUDI);
break;
}
default:
{
newCar = new BaseCar(CAR_TYPE_NONE);
break;
}
}
return newCar;
}
//main.cpp
#include <iostream>
#include "Car.h"
using namespace std;
int main() {
CarFactory* carFactory = new CarFactory();
BaseCar* newBenzeCar = carFactory->createNewCar(CAR_TYPE_BENZE);
BaseCar* newBMWCar = carFactory->createNewCar(CAR_TYPE_BMW);
BaseCar* newAudiCar = carFactory->createNewCar(CAR_TYPE_AUDI);
newBenzeCar->CarSpeaker();
newBMWCar->CarSpeaker();
newAudiCar->CarSpeaker();
delete newBenzeCar;
newBenzeCar = NULL;
delete newBMWCar;
newBMWCar = NULL;
delete newAudiCar;
newAudiCar = NULL;
delete carFactory;
carFactory = NULL;
return 0;
}
??????????????
????????????????????????????????????????????????C??????????????????????????????????????
???????????????C++?????????????????????????????????????????????????????些??????????????????????????????????????些??????????????????????C????????????????????????????????械??????????????C?????????????????????????效???????????y???+???????+static???????卸??????????????static???????????????????????????????????????????????????????????????????????????
?????????????C++ ????????????????懈????????????????????????械?????????懈???????????????????C??????写???????????????????????卸??????????????????校?????霉????????????????????????????????????
?????????????C++?????????????????????????澹�??????????梅???????????????楹�????????卸???????械?????????????校????????????????????楹�????????????????????C????写??????????????????????????????????????????????????甯�???????????????????????????????????????????
??????

???路???
??????????????????
2023/3/23 14:23:39???写?貌??????????
2023/3/22 16:17:39????????????????????些??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???路???????路
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11