C++练习题:构造函数与析构函数

第一部分:考点与作答区

考点:

  • 构造函数的定义
  • 构造函数的重载
  • 析构函数的定义
  • 构造函数和析构函数的自动调用

作答区: 编写一个C++程序,完成以下要求:

  1. 定义一个名为 Box 的类,包含私有成员变量 length(整型),width(整型)和 height(整型)。
  2. 定义一个构造函数 Box(int l, int w, int h),用于创建 Box 对象并初始化成员变量。
  3. 定义一个析构函数 ~Box(),用于在对象被销毁时执行清理工作。
  4. main 函数中,创建一个 Box 对象,并打印其尺寸。
  5. 程序结束时,确保析构函数被正确调用。

请在下方空白处编写代码:

// 在此处编写代码
第二部分:解题思路与答案

解题思路:

  1. 首先,定义一个名为 Box 的类,并为其添加私有成员变量 lengthwidthheight
  2. 定义一个构造函数 Box(int l, int w, int h),该构造函数接受三个整型参数,用于创建 Box 对象并初始化成员变量。
  3. 定义一个析构函数 ~Box(),该析构函数在对象被销毁时执行清理工作。
  4. main 函数中,创建一个 Box 对象,并打印其尺寸。
  5. 确保析构函数在程序结束时被正确调用。

答案:

#include <iostream>

// 定义 Box 类
class Box {
private:
    int length;
    int width;
    int height;

public:
    // 构造函数
    Box(int l, int w, int h) : length(l), width(w), height(h) {}

    // 析构函数
    ~Box() {
        std::cout << "Box destroyed." << std::endl;
    }

    // 打印尺寸成员函数
    void printDimensions() const {
        std::cout << "Length: " << length << ", Width: " << width << ", Height: " << height << std::endl;
    }
};

int main() {
    // 创建 Box 对象
    Box box(10, 5, 2);

    // 打印尺寸
    box.printDimensions();

    return 0;
}
第三部分:扩展考点与扩展作答区

扩展考点:

  • 类的继承
  • 虚函数与多态

扩展作答区: 在原有程序的基础上,增加以下功能:

  1. 定义一个名为 SavingsAccount 的类,它继承自 Account 类。
  2. SavingsAccount 类中,添加一个名为 calculateInterest 的成员函数,用于计算利息。
  3. main 函数中,创建一个 SavingsAccount 对象,并调用 calculateInterest 函数。

请在下方空白处编写代码:

// 在此处编写代码
第四部分:扩展解答思路与答案

扩展解答思路:

  1. 定义一个名为 SavingsAccount 的类,它继承自 Account 类。继承允许我们创建一个新的类,该类具有现有类的特性,同时还可以添加新的成员变量和成员函数。
  2. SavingsAccount 类中,添加一个名为 calculateInterest 的成员函数,用于计算利息。由于利息的计算可能因账户类型而异,因此我们将其定义为一个新的函数。
  3. main 函数中,创建一个 SavingsAccount 对象,并调用 calculateInterest 函数。

答案:

#include <iostream>
#include <string>

// 定义 Account 类
class Account {
private:
    int balance;
    std::string name;

public:
    // 构造函数
    Account(const std::string &_name, int _balance) : name(_name), balance(_balance) {}

    // 存款成员函数
    void deposit(const std::string &amount) {
        balance += std::stoi(amount);
    }

    // 取款成员函数
    bool withdraw(int amount) {
        if (amount > balance) {
            return false;
        }
        balance -= amount;
        return true;
    }

    // 获取余额成员函数
    int getBalance() const {
        return balance;
    }
};

// 定义 SavingsAccount 类,继承自 Account 类
class SavingsAccount : public Account {
private:
    float interestRate; // 利息率

public:
    // 构造函数
    SavingsAccount(const std::string &_name, int _balance, float _interestRate) : Account(_name, _balance), interestRate(_interestRate) {}

    // 计算利息成员函数
    float calculateInterest() {
        return balance * interestRate;
    }
};

int main() {
    // 创建 SavingsAccount 对象
    SavingsAccount savingsAccount("John Doe", 1000, 0.05); // 5% 利息率

    // 调用 deposit 函数
    savingsAccount.deposit("500");
    std::cout << "Balance after deposit: " << savingsAccount.getBalance() << std::endl;

    // 调用 calculateInterest 函数
    float interest = savingsAccount.calculateInterest();
    std::cout << "Interest calculated: " << interest << std::endl;

    return 0;

www.bjfsrcw.com
www.bjtzzp.com
www.bjsyrcw.com
www.bjcpzpw.com
www.bjhrrcw.com
}

 在这段代码中,我们首先定义了一个名为 SavingsAccount 的类,它继承自 Account 类。然后,我们为 SavingsAccount 类添加了一个私有成员变量 interestRate,表示利息率。我们定义了一个构造函数,它接受 Account 类的构造函数参数,并添加了 interestRate 作为新参数。我们还定义了一个名为 calculateInterest 的成员函数,用于计算利息。在 main 函数中,我们创建了一个 SavingsAccount 对象,并调用了 calculateInterest 函数来计算利息。

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值