第一部分:考点与作答区
考点:
- 构造函数的定义
- 构造函数的重载
- 析构函数的定义
- 构造函数和析构函数的自动调用
作答区: 编写一个C++程序,完成以下要求:
- 定义一个名为
Box
的类,包含私有成员变量length
(整型),width
(整型)和height
(整型)。 - 定义一个构造函数
Box(int l, int w, int h)
,用于创建Box
对象并初始化成员变量。 - 定义一个析构函数
~Box()
,用于在对象被销毁时执行清理工作。 - 在
main
函数中,创建一个Box
对象,并打印其尺寸。 - 程序结束时,确保析构函数被正确调用。
请在下方空白处编写代码:
// 在此处编写代码
第二部分:解题思路与答案
解题思路:
- 首先,定义一个名为
Box
的类,并为其添加私有成员变量length
、width
和height
。 - 定义一个构造函数
Box(int l, int w, int h)
,该构造函数接受三个整型参数,用于创建Box
对象并初始化成员变量。 - 定义一个析构函数
~Box()
,该析构函数在对象被销毁时执行清理工作。 - 在
main
函数中,创建一个Box
对象,并打印其尺寸。 - 确保析构函数在程序结束时被正确调用。
答案:
#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;
}
第三部分:扩展考点与扩展作答区
扩展考点:
- 类的继承
- 虚函数与多态
扩展作答区: 在原有程序的基础上,增加以下功能:
- 定义一个名为
SavingsAccount
的类,它继承自Account
类。 - 在
SavingsAccount
类中,添加一个名为calculateInterest
的成员函数,用于计算利息。 - 在
main
函数中,创建一个SavingsAccount
对象,并调用calculateInterest
函数。
请在下方空白处编写代码:
// 在此处编写代码
第四部分:扩展解答思路与答案
扩展解答思路:
- 定义一个名为
SavingsAccount
的类,它继承自Account
类。继承允许我们创建一个新的类,该类具有现有类的特性,同时还可以添加新的成员变量和成员函数。 - 在
SavingsAccount
类中,添加一个名为calculateInterest
的成员函数,用于计算利息。由于利息的计算可能因账户类型而异,因此我们将其定义为一个新的函数。 - 在
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
函数来计算利息。