C++语言扩展解析:从C到C++的关键变化

需积分: 0 0 下载量 54 浏览量 更新于2024-07-31 收藏 135KB PPT 举报
C++语言程序设计课件,涵盖了C++对C的非类部分扩充,包括I/O操作、强类型机制、引用、内联函数、指针、标准字符串函数库、块内的说明、new和delete运算符、作用域访问运算符、const的作用、函数重载以及参数个数不定的函数。 在C++编程中,第二章主要讨论了C++对C语言的增强和扩展。C++被设计为C的超集,这意味着所有的C代码都是有效的C++代码,但C++引入了一些新的特性以提高程序的灵活性和可维护性。 2.1 I/O操作:C++不仅支持C的I/O函数,如printf和scanf,还引入了I/O流的概念。iostream库中的cin和cout提供了一种更直观的I/O方式。例如,`cin >> str`用于读取用户输入的字符串,而`cout << "enter a string:"`则用于输出提示信息。 2.2 强类型机制:C++是一种强类型语言,要求所有函数都必须有原型,即函数声明和定义必须一致。与C不同,C++允许在函数原型中设定默认参数值,但这些值必须从右向左赋值,并且在调用时也按此顺序计算。 2.3 引用:引用是C++特有的概念,它是一个已经初始化过的对象的别名。一旦引用被创建并绑定到一个对象,就不能改变绑定到其他对象。引用的声明如`int &ref = num`,意味着ref是num的一个引用,对ref的操作会直接影响num。 2.4 内联函数:C++引入内联函数来优化代码,减少函数调用带来的开销。通过在函数声明前加上inline关键字,编译器会尝试将函数体展开在调用处,提高执行效率。 2.5 指针:虽然C也有指针,但C++对其进行了增强,支持指针的更多操作,如指针到指针、动态内存分配(new和delete)以及const指针等。 2.6 操作字符串数据的标准函数库:C++提供了标准模板库(STL)中的string类,使得处理字符串更加方便和安全。 2.7 块内的说明:C++允许在任何作用域内声明变量,不仅限于函数开始。 2.8 new和delete运算符:C++的动态内存管理由new和delete负责,它们分别用于动态分配和释放内存,以实现对象的动态创建和销毁。 2.9 作用域访问运算符:::C++使用双冒号运算符(::)来访问命名空间或类的成员。 2.10 const的扩充作用:const在C++中不仅仅用于常量,还可以修饰函数参数、成员变量,甚至整个函数,以表明某些值不应被修改。 2.11 函数重载:C++允许在同一作用域内定义多个同名但参数列表不同的函数,这就是函数重载,提高了代码的可读性和复用性。 2.12 参数个数不定的函数:C++通过可变参数模板或 ellipsis(...)来实现参数个数不定的函数,如printf样式的函数。 C++在保留C语言的大部分语法的同时,增强了类型检查、内存管理、输入输出和面向对象的特性,使程序员能编写出更高效、更安全的代码。通过深入学习这些C++的非类部分扩充,开发者可以更好地理解和利用C++的强大功能。