不允许使用友元函数,改写习题15-3程序。 #include using namespace std; //代码修改----- class Car{ public: Car(int j){size=j;} friend int Leisure(int time, Car& aobj, Boat& bobj); protected: int size; }; class Boat{ public: Boat(int j){size=j;} friend int Leisure(int time, Car& aobj, Boat& bobj); protected: int size; }; //------------------------ int Leisure(int time, Car& aobj, Boat& bobj){ return time * aobj.Get() * bobj.Get(); } int main(){ Car c1(2); Boat b1(3); int time =4; cout <<Leisure(time,c1,b1); }
时间: 2023-06-06 16:07:58 浏览: 173
C-语言程序设计(与“函数”有关文档共32张).pptx
习题15-3程序可以通过定义友元函数来访问类中的私有成员变量和方法。如果不允许使用友元函数,可以在类中添加公有方法来访问私有成员变量和方法。例如,如果在习题15-3程序中有如下的类定义:
```cpp
class Rectangle {
private:
double width;
double height;
public:
Rectangle(double w, double h);
double getArea();
friend void print(Rectangle r);
};
```
可以将`print`函数改为成员方法`printInfo`,并将其放置在类的公有部分,修改后的类定义如下:
```cpp
class Rectangle {
private:
double width;
double height;
public:
Rectangle(double w, double h);
double getArea();
void printInfo();
};
```
`printInfo`方法的实现与原来的`print`函数相同,只需要将其中的`r.width`和`r.height`改为`this->width`和`this->height`即可。这样,就可以通过调用`printInfo`方法来输出矩形的信息。
阅读全文