C++程序设计:extern变量与面向对象的探讨

需积分: 10 0 下载量 98 浏览量 更新于2024-08-19 收藏 3.36MB PPT 举报
"C++程序设计相关教材及概念解析" 在C++程序设计中,全局变量通常具有文件作用域,即它们在定义的源文件内可见。然而,使用`extern`关键字可以扩展全局变量的作用域,使其在其他文件中也能被引用。在给出的示例中,`file1.cpp`声明了全局变量`a`和`b`,而`file2.cpp`则定义了它们并赋值为3和4。这种方式允许不同源文件之间共享数据,但同时也引入了潜在的问题。 全局变量的使用需谨慎,因为它们的值在整个程序运行期间都保持不变,任何函数都能修改它们。当一个文件中的函数改变全局变量的值,这可能会影响到依赖这些值的其他文件中的函数。例如,如果`file1.cpp`中的某个函数修改了`a`或`b`的值,那么`file2.cpp`中的函数可能会得到意外的结果。这种副作用可能导致难以调试的错误,因此在编写C++程序时,推荐使用局部变量和参数传递来减少全局状态的影响。 C++语言的发展历程是从C语言进化而来,由Bjarne Stroustrup博士在C的基础上加入了面向对象的特性。C++保留了C语言的简洁和高效,并增加了类、对象、封装、继承、多态等面向对象的概念,使得它成为一个混合型的编程语言,既能进行面向过程编程,也能进行面向对象编程。 C++的面向对象编程(OOP)是为了解决大型软件项目的复杂性和维护性问题。通过类和对象,程序员可以更好地模拟现实世界中的实体和它们之间的关系,提高代码的重用性和模块化。类是对象的蓝图,包含数据成员(属性)和成员函数(方法)。对象则是类的实例,具有类所定义的特性和行为。 C++的其他重要特性还包括模板(用于创建泛型代码)、异常处理(用于捕获和处理程序运行时的错误)、命名空间(避免命名冲突)、以及STL(标准模板库),提供了容器(如vector和list)、迭代器、算法和函数对象等强大工具。 在学习C++时,通常会按照以下顺序逐步深入: 1. 基本知识:包括C++的初步认识,了解程序的构成和书写规则,以及如何编写和实现C++程序。 2. 面向过程的程序设计:学习基本的数据类型、表达式、控制流程语句、函数和预处理指令。 3. 基于对象的程序设计:掌握类和对象的概念,理解封装和数据隐藏,以及如何使用构造函数和析构函数。 4. 面向对象的程序设计:深入学习继承、派生、多态性与虚函数,这些都是OOP的核心概念。 5. 进阶主题:如输入输出流、C++工具,如iostream库和调试技术,以及其他高级特性。 在谭浩强编著的《C++程序设计》一书中,读者可以系统地学习到这些内容,从基础知识到高级特性,逐步提升C++编程技能。这本书是针对中国高等院校计算机基础教育的一本规划教材,适合初学者和有一定经验的程序员作为参考。通过阅读和实践,读者可以更好地理解和运用C++语言进行程序设计。