C++构造函数初始化:常量成员与引用成员

需积分: 35 11 下载量 182 浏览量 更新于2024-08-23 收藏 2.25MB PPT 举报
"C++课程,涉及构造函数初始化常数据成员和引用成员的讲解,由吉林大学软件学院提供,强调了C++程序设计的基础知识和面向对象编程的概念。" 在C++编程中,构造函数是用于初始化类对象的特殊函数。在给定的课件中,重点讨论了如何在构造函数中初始化常数据成员(const成员)和引用成员(reference成员)。常数据成员是不能在对象创建后修改的变量,它们必须在定义时或者构造函数中进行初始化,并且只能初始化一次。引用则必须在声明时或构造函数中绑定到一个已存在的对象,它不是新的存储位置,而是现有对象的别名。 例如,类`Student`中有两个成员,一个`const int i`和一个`int &j`。在构造函数`Student(int s, int &k)`中,`i`被初始化为`s`,`j`被初始化为`k`。这里,`i`是一个常量数据成员,不能在后续的代码中更改其值;而`j`是一个引用成员,它依附于`c`这个独立变量。注意,引用成员不能直接赋值,必须通过引用符号`&`进行初始化。 在`main`函数中,我们创建了一个`Student`对象`s`,并传递了两个整数`9818`和`123`。`s`的构造函数将`9818`赋值给了常量数据成员`i`,将`123`的引用赋给了引用成员`j`。然后,`s.p()`函数会输出引用成员`j`所绑定的变量`c`的值,即`123`。 C++是由C语言发展而来的,它在C的基础上增加了对面向对象编程的支持。C语言以其灵活性和高效性著称,但随着程序规模的扩大,C语言在模块化和代码重用方面存在局限性。C++通过引入类、对象、继承、多态等概念,解决了这些问题,成为一种混合型语言,既支持过程性编程,也支持面向对象编程。 面向过程编程关注事件的处理步骤,通过函数一步步实现。而面向对象编程则以对象为核心,对象包含数据(属性)和操作数据的方法(行为),通过类来抽象和封装这些特性,实现代码的重用和模块化。 在C++中,继承允许创建新的类(派生类)基于已有的类(基类),从而实现代码的重用和扩展。通过继承,派生类可以继承基类的属性和行为,同时也可以添加新的特性。这在设计大型、复杂系统时特别有用,因为它促进了代码的组织和维护。