// 继上面的Car类, 设计Person类,并设置Car类为Person类的友元类,使得在Person类的成员函数直接访问 Car对象的所有成员。 // 【提示】Person类的构造函数传入 Car类的对象, 增加Person的成员函数用于操作Car类的成员函数或访问Car对象的属性。 #include #include #include using namespace std; class Car { friend class Person; public: Car(const string &color, int weight) : color(color), weight(weight) {} public: void driver() { cout << "驾车 " << this->weight << " 车重" << endl; } void start() { cout << "启动 " << this->color << " 颜色的车" << endl; } void stop() { cout << "停车" << endl; } private: string color; // 颜色 int weight; // 重量 }; class Person { // friend class Car; public: Person(Car &car) : tcar(car) {} public: void setCarColor(const string &color) { // strcpy(tcar.color, color); tcar.color = color; } void setCarWeight(int weight) { tcar.weight = weight; } void show() { cout << "驾驶着一辆" << tcar.color << ", 重" << tcar.weight << "千克的车辆" << endl; } private: Car &tcar; }; void test() { Car car("红色", 1000); Person person(car); person.setCarColor("蓝色"); person.setCarWeight(1230); car.start(); car.driver(); car.stop(); person.show(); } int main() { test(); return 0; }