Menu
CoddyTech

实现账户

本课属于 Coddy C 学习旅程的“面向对象编程”单元。第 23 课,共 61 课。

challenge icon

挑战

简单

现在该让你的银行账户真正运作起来了!你已经在 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 在线编译器