AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
课时
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
任务地图
课程
C++
C++
级别 14
函数入门
C++ SELF
等级 14,
课时 0
在本讲中我们会讨论为什么在 C++ 中需要函数,以及如何用它们把一大段代码变成可读的脚本:让
main()
变得“精简”,把操作抽离到诸如
print_menu()
、
read_line()
、
print_tasks()
、
add_task()
和
clear_tasks()
这样的独立函数中。通过一个基于
std::vector<std::string>
的简单待办事项小程序练习分解技巧,学习如何划定责任边界并避免典型错误(复制粘贴、“函数什么都做”、命名太泛)。
函数签名:参数与类型
C++ SELF
等级 14,
课时 1
在本讲中我们解析 C++ 中的函数签名:它由哪些部分组成(返回类型、名称、参数列表),参数与实参有何不同,如何选择返回类型(
int
、
double
、
bool
、
void
、
std::string
),以及为什么声明顺序对编译器很重要。在小型项目“TextLab”中我们会把场景组装到
main()
,并看到签名如何使代码更易读且更安全。
原型与代码顺序
C++ SELF
等级 14,
课时 2
讲解为什么 C++ 编译器自上而下读取文件并且在调用处“看不到”后面才出现的函数声明。学习如何区分
声明
(原型形式为
int
sum
(
int
,
int
)
;
)与
定义
(带函数体的实现),以及如何正确组织文件:原型 →
main
→ 实现,并避免常见错误(忘记
;
、签名不匹配、“函数 vs 变量” 混淆、重复定义)。
return 与 早期退出
C++ SELF
等级 14,
课时 3
在本讲中我们讨论 C++ 中的
return
语句:为什么形式
return
expr
;
和
return
;
不同,为什么编译器要求对返回
int
/
bool
类型的函数“在所有路径上返回值”,以及早期退出(guard clauses)如何通过去掉深层的
if
/
else
来简化代码。通过在循环中查找的示例和迷你应用 NoteKeeper,我们将看到如何写出线性的流程并用
main()
返回
0
或
1
来正确结束程序。
重载与默认参数
C++ SELF
等级 14,
课时 4
我们讲解在 C++ 中让函数 API 更友好的两种方式:重载(同名函数的多个版本,参数不同)和默认参数(为“典型”尾部参数提供默认值)。通过 TaskPad 控制台应用的实用例子(
print_line()
,
print_menu()
,
read_line()
)来观察编译器选择重载的规则、“不能仅按返回类型重载”的限制,以及主要陷阱——在混合使用重载和默认值时产生的歧义。
Please enable JavaScript to continue using this application.