一个失败的程序,希望大家指点

来源:互联网 发布:淘宝团购模板 编辑:程序博客网 时间:2024/05/06 03:38

#include<iostream>
#include<string>
using namespace std;

/*********************************************************************************/
//definition for class Person
class Person
{
public:
 Person();
 Person(string the_name);
 Person(const Person& the_object);
 string get_name() const;
 Person& operator =(const Person& rt_side);
 friend istream& operator >>(istream& in_stream,Person& person_object);
 friend ostream& operator <<(ostream& out_stream,const Person& person_object);
private:
 string name;
};

/*********************************************************************************/
//implementation for class Person
Person::Person():name("No name yet")
{
 //Body intentionally empty
}

Person::Person(string the_name):name(the_name)
{
 //Body intentionally empty
}

Person::Person(const Person& the_object)
{
 name=the_object.get_name();
}

string Person::get_name() const
{
 return name;
}

Person& operator =(const Person& rt_side)
{
 Person temp(rt_side.get_name());
 return temp;
}

istream& operator >>(istream& in_stream,Person& person_object)
{
 in_stream>>person_object.name;
 return in_stream;
}

ostream& operator <<(ostream& out_stream,const Person& person_object)
{
 out_stream<<person_object.name;
 return out_stream;
}

/*********************************************************************************/
//definition for the base class Vehicle
class Vehicle
{
public:
 Vehicle();
 Vehicle(string a1,int a2,Person p1);
 friend istream& operator >>(istream& in_stream,Vehicle& Vehicle_object);
 friend ostream& operator <<(ostream& out_stream,const Vehicle& Vehicle_object);
private:
 string cname;
 int mot;
protected:
 Person owner;
};

/*********************************************************************************/
//implementation for the base class Vehicle
Vehicle::Vehicle():cname("No name yet"),mot(0)
{
 //Body intentionally empty
}

Vehicle::Vehicle(string a1,int a2,Person p1):cname(a1),mot(a2),owner(p1)
{
 //Body intentionally empty
}

istream& operator >>(istream& in_stream,Vehicle& Vehicle_object)
{
 in_stream>>Vehicle_object.cname>>Vehicle_object.mot>>Vehicle_object.owner.name;
 return in_stream;
}

ostream& operator <<(ostream& out_stream,const Vehicle& Vehicle_object)
{
 out_stream<<Vehicle_object.cname<<Vehicle_object.mot<<Vehicle_object.owner.get_name()<<endl;
 return out_stream;
}

/*********************************************************************************/
//definition for the derived class Truck
class Truck : public Vehicle
{
 public:
  Truck();
  Truck(double w,int m);
 private:
  double we;
  int mot;
};

/*********************************************************************************/
//implementation for the derived class Truck
Truck::Truck():Vehicle(),we(0),mot(0)
{
 //Body intentionally empty
}

Truck::Truck(double w,int m):Vehicle(string a1,int a2,Person p1),we(w),mot(m)
{
 //Body intentionally empty
}

int main()
{
 return 0;
}

原创粉丝点击