#include <iostream>
#include <cstring>
using namespace std;
class Vehicle
{
public:
Vehicle()
{
cout<<"Vehicle default.\n";
cnt++;
}
Vehicle(int s)
{
cnt++;
speed=s;
cout<<"Vehicle no-default.\n";
}
Vehicle(const Vehicle& another)
{
speed=another.speed;
cout<<"Vehicle copier.\n";
cnt++;
}
void show()
{
cout<<speed;
}
void setSpeed(int _speed)
{
speed=_speed;
}
static int getCnt()
{
return cnt;
}
protected:
int speed;
static int cnt;
};
int Vehicle::cnt=0;
class Car:public Vehicle
{
public:
Car()
{
cout<<"Car default\n";
}
Car(const Car &another):Vehicle(another)父类的引用可以调用子类;拷贝构造函数也是构造函数,也要对Vehicle初始化;
{
persons=another.persons;
cout<<"Car copier\n";
}
Car(int _persons, int _speed){persons=_persons;Vehicle::setSpeed(_speed);}//在子类中调用父类的函数需要前面加父类名;
void show()
{
Vehicle::show();
cout<<persons<<endl;
}
private:
int persons;
};
int main()
{
Car car(5,120);
// Car car2, car3(car2);
// car2.show();
// car2.Vehicle::show();
cout<<Car::getCnt()<<endl;
return 0;
}
继承2 (拷贝构造函数也是构造函数;父类的引用可以调用子类)
最新推荐文章于 2022-11-17 16:47:26 发布