实现账户
本课属于 Coddy C 学习旅程的“面向对象编程”单元。第 23 课,共 61 课。
挑战
简单现在该让你的银行账户真正运作起来了!你已经在 account.h 中创建了公共接口:现在要实现让它正常工作的隐藏内部逻辑。
在之前工作的基础上,你要添加一个源文件,其中包含隐藏的结构体定义和实际的函数实现。封装正是在这里真正发挥作用:结构体主体只存在于 .c 文件中,使用你的库的人完全看不到它。
你将使用 3 个文件:
account.h:现有的头文件,其中包含不透明的Account类型声明,以及create_account和destroy_account的函数原型。保留使用ACCOUNT_H的头文件保护宏。account.c:在这里实现核心逻辑。定义实际的struct Account,其中有两个隐藏成员:int id(账户标识符)和double balance(新账户的初始值为 0.0)。实现构造函数来分配内存、将 ID 设置为参数中的值,并将余额初始化为零。实现析构函数来正确释放内存。main.c:通过创建账户并确认其正常工作来测试你的实现。由于结构体成员是隐藏的,你无法查看它们,但可以验证账户的生命周期是否正常。
你会收到一个输入:要分配给新账户的账户 ID(一个整数)。
在主文件中,使用给定的 ID 创建账户,打印一条显示该 ID 的确认消息,然后销毁账户并确认清理完成。
请按以下格式打印输出:
Account 1001 created
Account destroyed其中,1001 会替换为你收到的实际输入 ID。
请记住:你的 main.c 无法直接访问 account->id 或 account->balance。这些成员完全隐藏在 account.c 中。目前,你只需在输出消息中使用输入的 ID。在接下来的课程中,你会添加 getter 函数,以便正确获取隐藏的数据。
亲手试试
#include <stdio.h>
#include "account.h"
int main() {
int account_id;
// TODO:从输入中读取 account_id
scanf("%d", &account_id);
// TODO:使用 create_account() 创建账户,并打印 "Account <id> created"
// TODO:使用 destroy_account() 销毁账户,并打印 "Account destroyed"
return 0;
}面向对象编程中的所有课
自己练习: C 在线编译器