"这篇文档是关于C++学习的笔记,主要介绍了如何使用new关键字在堆区创建和释放对象,以及C++的相关背景和历史。"
在C++编程中,使用`new`关键字是在堆区动态创建对象的关键。堆区不同于栈区,它允许程序员手动控制对象的生命周期,这对于需要长期存在的或者大小不确定的对象非常有用。以下是关于`new`创建对象的详细解释:
1. **概念:用new创建的对象**
当你使用`new`关键字创建一个对象时,内存会在堆上分配空间,返回一个指向该对象的指针。这与在函数作用域内直接声明对象(在栈上分配)不同,堆上的对象不会随着作用域结束而自动删除。
2. **创建**
创建对象的方式有两种:
- `new 类名;` 这将创建单个类的实例,并返回指向它的指针。
- `new 类名[无符号整型表达式];` 这将创建一个类类型的数组,长度由无符号整型表达式决定。
3. **释放**
使用`delete`关键字来释放由`new`创建的对象。对于单个对象,使用`delete 指针名;`。对于数组,必须使用`delete [] 指针名;`来确保正确释放所有元素。
4. **访问**
一旦对象在堆上创建,你可以通过指针或引用来访问它们。指针需要解引用(`*`运算符)才能访问对象,而引用则直接作为对象的一个别名使用。
接下来,文档简要介绍了C++的相关背景。C++是由比雅尼·斯特劳斯特鲁普博士在1979年开始开发的,最初命名为"C with Class",后逐渐演变成现在的C++。1998年,C++正式确立了ANSI/ISO标准,其经典著作《The C++ Programming Language》也发布了第三版。
C++是一种多范式语言,支持面向对象程序设计(OOP)、泛型编程(例如模板)和数据抽象。它源于C语言,但提供了更高级别的特性,使得它成为系统编程、游戏编程、网络编程和嵌入式系统开发等领域的重要工具。
C++的发展经历了三个阶段,从传统的面向对象语言,到加入泛型编程(如STL和Boost库),再到引入产生式编程和模板元编程(如Loki和MPL)等先进概念。C++在行业中的地位一直稳固,根据链接提供的信息,它在各种编程语言排行榜中名列前茅,广泛应用于各种领域。
在学习C++时,推荐的教材包括《The C++ Programming Language》、《C++ Primer》、《C++ University Tutorial》和《C++ Advanced Programming》。此外,课程还强调了作业的重要性,包括选择题、填空题和编程题,旨在提高学生的理论知识和实际编程能力。