数据成员">
private:
<成员函数或数据成员>
protected:
<成员函数或数据成员>
};
类的访问修饰符:public、private、protected
- public:公开的,类外可以直接访问
- private:私有的,只有类内可以访问
- protected:受保护的,类及其子类可以访问
8.2.2 对象的创建与初始化
对象是类的实例,通过new运算符动态创建或直接在栈上声明。拷贝初始化构造函数是当一个新对象被已存在对象初始化时调用的特殊构造函数。例如,在例8.5中,`Circle1 p2(p1);` 就是通过拷贝初始化构造函数创建了`p2`对象,`p2`的成员变量`x`, `y`, `r`分别复制了`p1`的对应值。
8.3 继承和派生
继承是面向对象编程的一个重要特性,允许一个类(子类/派生类)从另一个类(父类/基类)继承属性和行为。在C++中,可以通过在类定义时使用冒号和访问修饰符指定基类,如`class DerivedClass : access_specifier BaseClass {...}`。继承有助于代码重用,并可以构建类的层次结构。
8.4 多态性
多态性是指同一种消息可以被不同类型的对象理解和响应。在C++中,有两种主要的多态形式:静态多态(编译时多态,通过函数重载和运算符重载实现)和动态多态(运行时多态,通过虚函数和纯虚函数实现)。动态多态是通过虚函数表实现的,允许指向基类的指针或引用调用派生类的重写函数。
8.5 程序举例
在给定的程序中,我们看到了面向对象编程的应用。首先,`Circle1` 类封装了圆的属性(`x`, `y`, `r`) 和行为(`print` 和 `set` 函数)。然后,`Circle1` 类的拷贝构造函数允许创建新的对象`p2`,它的状态是`p1`的副本。`main`函数中展示了如何创建和使用这些对象。
总结:
拷贝初始化构造函数是C++中创建新对象并初始化为已有对象状态的重要方式,它接受一个对象的引用作为参数,通常用于函数参数传递和返回值。面向对象编程的核心概念包括封装、继承和多态,这些特性使得C++能够更好地模拟现实世界的问题,并实现灵活、可维护的代码。通过类和对象,我们可以设计复杂的系统,而继承则允许我们建立类的层次结构,实现代码复用。多态性则增强了对象的灵活性,使得相同的消息可以有不同的响应。