C++练习--创建Boat类和Car类(含友元)

/*
定义Boat与Car两个类,二者都有weight属性,
定义二者的一个友元函数totalWeight()为外部函数,
计算二者的重量和。
*/
#include<iostream>
#include<string>
using namespace std;
class Boat;
class Car {
private:
    double weight;
public:
    Car(double wg) {
        this->weight = wg;
    }
    Car(Car &tp) {
        this->weight = tp.weight;
    }
    double getWeight() {
        return weight;
    }
    ~Car() {

    }
    void show() {
        cout << "This is a Car:" << endl;
        cout << "Weight:" << weight << endl;
    }
};
class Boat {
private:
    double  weight;
public:
    Boat(double wg) {
        this->weight = wg;
    }
    Boat(Boat &tp) {
        this->weight = tp.weight;
    }
    double getWeight() {
        return weight;
    }
    ~Boat()
    {

    }
    friend double totalWeight(Boat &a, Car &b);
    void show() {
        cout << "This is a Boat:" << endl;
        cout << "Weight:" << weight << endl;
    }
};
double totalWeight(Boat &a, Car &b) {
    return a.getWeight() + b.getWeight();
}
int main() {
    Boat a(1024.0);
    Car b(1024.0);
    a.show();
    b.show();
    cout << "The total weight of the Car and the Boat:" << endl;
    cout << totalWeight(a, b);
    return 0;
}
  • 测试截图

     

 

posted @   Chasssser  阅读(1049)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示