C++中全局区对象实例化与内存分析

需积分: 48 1 下载量 77 浏览量 更新于2024-08-19 收藏 17.46MB PPT 举报
在C++的学习笔记中,我们关注的是全局区中对象的实例化和管理。首先,理解实例化是指创建对象的过程,它涉及到内存分配和对象的初始化。在给定代码段中,有三个Student对象被提及:`s_stu1`、`s_stu2`和通过指针`p`引用的对象。全局区,也称为静态存储区,是程序开始运行时就分配的空间,其中的静态变量在整个程序执行期间都存在。 `s_stu1`是一个静态变量,它在`main()`函数外部定义,这意味着它的生命周期贯穿整个程序。当你调用`s_stu1.set("Lily");`和`s_stu1.display();`时,它会被初始化并显示名字。`s_stu2`则在`main()`函数内部定义,虽然没有明确标注为静态,但作为局部变量,它也有自己的内存空间,不会与其他函数实例共享。 通过指针`p`,我们间接访问了`s_stu2`,并将它的名字改为"Jack",然后调用`p->display();`显示结果。最后,`r`是一个引用,它是对`s_stu2`的别名,所以`r.set("Jimi");`会改变`s_stu2`的值,再通过`r.display();`输出结果。 C++语言的特点在这部分代码中得以体现:它是C的超集,提供了面向对象特性(如数据抽象和继承),以及泛型编程的支持,通过STL(Standard Template Library)和Boost库实现。C++的起源和发展历程从贝尔实验室开始,经历了从面向对象语言到支持泛型编程和模板元编程的多个阶段。 C++在业界享有高度认可,它的应用领域广泛,包括嵌入式系统、游戏开发、网络编程和系统级编程。这说明C++作为一种强大的系统级编程语言,对于各种复杂应用具有很高的适用性。 总结来说,这段代码演示了全局区对象的实例化,展示了C++的静态变量、指针和引用等基本概念,以及语言如何支持面向对象和泛型编程。同时,它也揭示了C++语言的发展历史和其在不同领域的广泛应用。