东南大学何洁月C++课程讲解:二义性与C++基础

需积分: 10 3 下载量 201 浏览量 更新于2024-08-19 收藏 3.83MB PPT 举报
在东南大学何洁月教授的C++课程中,"二义性"这一主题主要探讨的是编程中的潜在问题,尤其是在条件语句的嵌套中如何避免或处理。二义性是指代码在某些情况下可能有多种解释或执行路径,这可能导致编译错误或难以预料的行为。在提供的代码示例中,两个if-else结构展示了两种不同的代码排列方式: (1) 第一个例子中: ```c++ if (I % 3 == 0) { if (I % 7 == 0) cout << I << endl; // 只有当I能同时被3和7整除时输出 else cout << I << endl; // 否则,只输出能被3整除的I } else cout << I << endl; // 输出不能被3整除的I,无论是否能被7整除 ``` 这里,两个嵌套的if条件明确地决定了输出的逻辑,避免了二义性。 (2) 第二个例子: ```c++ if (I % 3 == 0) { if (I % 7 == 0) cout << I << endl; // 相同的逻辑,但换了一个缩进层次 } else cout << I << endl; // 直接输出不能被3整除的I ``` 这个版本虽然看起来简洁,但如果没有明确的意图,读者可能会误认为外部的else总是会执行,除非遇到内部的if条件。因此,为了消除这种潜在的二义性,推荐使用第一个版本,通过清晰的代码结构表达每个条件的独立判断。 课程大纲涵盖了C++语言的基础和面向对象编程的核心内容,包括计算机程序设计语言发展、面向对象方法论、数据类型、表达式、输入输出、算法控制结构、自定义数据类型、函数的定义与使用、内联函数、函数重载、模板、类与对象的概念、构造函数和析构函数、类的组合、模板等。这些内容旨在帮助学生建立基本的编程概念,掌握C++语言的语法和面向对象编程技巧,提升编程和调试能力,为后续学习打下坚实的基础。 通过何洁月教授的授课,学生们将不仅理解C++语言的细节,还能学会如何有效地组织代码,减少二义性和提高代码可读性,这对于编写高效且易于维护的程序至关重要。课程的实践性强,通过实验环节,学生将有机会在实践中应用所学知识,进一步巩固理论知识。