您的位置:首页 > 其它

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

2009-06-05 12:42 561 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐