C++入门:类与对象基础讲解

版权申诉
0 下载量 192 浏览量 更新于2024-08-26 收藏 122KB PDF 举报
"C++类和对象的基本概念" 在C++编程语言中,类(Class)和对象(Object)是核心概念,它们构成了面向对象编程的基础。类是一种自定义的数据类型,它封装了数据(属性)和操作这些数据的方法(行为)。对象则是类的实例,具有类定义的所有属性和行为。 **类(Class)** 类是对现实世界中具有相似属性和行为的事物的抽象。它定义了数据成员(属性)和成员函数(方法)。在C++中,类的定义使用`class`关键字开始,后面跟着类名,接着是一系列由权限修饰符分隔的成员声明。权限修饰符有`public`、`private`和`protected`: - `public`:允许类的外部直接访问这些成员。 - `protected`:保护成员,只允许其子类和类内部访问。 - `private`:私有成员,只能在类内部访问,对外部是不可见的。 如果未指定权限修饰符,成员默认为`private`。结构体(struct)中的成员默认为`public`。 类定义示例: ```cpp class MyClass { public: // 公共成员函数 void publicMethod() {} private: // 私有数据成员 int privateData; protected: // 保护数据成员 double protectedValue; }; ``` **对象(Object)** 对象是类的具体实例,它是通过调用类的构造函数创建的。对象可以拥有类定义的全部属性和行为。在C++中,创建对象通常有两种方式: 1. 普通对象: ```cpp MyClass myObject; ``` 2. 对象数组(不常用): ```cpp MyClass myArray[5]; ``` 在类中没有定义构造函数的情况下,对象的成员变量不会自动初始化,需要通过成员函数或初始化列表来设置初始值。 例如,类`MM`定义如下: ```cpp class MM { public: void print() { cout << name << "\t" << age << endl; } void initData(string nname, int nage) { name = nname; age = nage; } protected: string name = "默认值"; int age = 0; }; ``` 创建并初始化`MM`对象: ```cpp MM mm; // 创建一个对象,但未初始化 mm.initData("张三", 18); // 初始化对象 mm.print(); MM mmArray[4]; // 创建对象数组,未初始化 for (int i = 0; i < 4; i++) { mmArray[i].initData(string("name") + to_string(i), i + 19); mmArray[i].print(); } MM *p = new MM; // 动态创建对象 p->initData("李四", 20); p->print(); delete p; // 释放动态内存 p = nullptr; ``` **构造函数与析构函数** 构造函数是在创建对象时自动调用的特殊成员函数,用于初始化对象的成员。如果类中没有自定义构造函数,C++会提供一个默认构造函数。析构函数是在对象生命周期结束时自动调用的函数,用于清理资源。 **继承与派生** 继承允许一个类(子类/派生类)从另一个类(基类)继承属性和行为。这有助于代码重用,并创建类之间的层次结构。派生类可以添加新的成员,或覆盖基类的方法。 **多态性(Polymorphism)** 多态是指同一种行为在不同类中表现出不同的形式。在C++中,通过虚函数(`virtual`)实现多态。虚函数允许通过基类指针或引用调用子类重写的成员函数。 总结,C++的类和对象是构建复杂系统的基础,通过封装、继承和多态等特性,可以设计出更符合现实世界的模型,提高代码的可读性和可维护性。