【C++】类
-
类和对象:
- 类是一种用户自定义的数据类型,用于封装数据和操作。
- 对象是类的实例,通过实例化类来创建对象。
- 类定义了对象的属性(成员变量)和行为(成员函数)。
-
成员变量和成员函数:
- 成员变量是类中定义的变量,用于存储对象的状态和数据。
- 成员函数是类中定义的函数,用于操作和访问对象的成员变量。
-
构造函数:
- 构造函数是一种特殊的成员函数,用于在创建对象时进行初始化。
- 构造函数与类同名,没有返回类型,并在对象创建时自动调用。
- 构造函数可以有多个重载版本,根据参数的不同进行区分。
-
继承:
- 继承是一种面向对象编程的概念,允许一个类(称为派生类或子类)继承另一个类(称为基类或父类)的属性和行为。
- 继承可以通过关键字
class
后面加上冒号:
来实现。 - 派生类继承了基类的成员变量和成员函数,并可以扩展和修改它们。
-
多继承和菱形继承问题:
- 多继承是指一个派生类可以从多个基类中继承属性和行为。
- 菱形继承是多继承中的一个特殊情况,其中派生类继承了两个直接或间接基类,这两个基类又继承自同一个基类。
- 菱形继承可能导致菱形继承问题,即派生类中出现同名的成员变量或成员函数,导致二义性。
-
访问修饰符:
- 访问修饰符用于控制类中成员变量和成员函数的访问权限。
public
:公有成员可以在类内和类外访问。protected
:受保护成员可以在类内访问,以及派生类中访问,但在类外不可访问。private
:私有成员只能在类内访问,不能在类外或派生类中访问。
-
对象的创建和方法调用:
- 通过类定义的对象可以在程序中实际使用。
- 使用类名加上对象名创建对象,例如
ClassName object;
。 - 对象可以调用其成员函数使用其功能,例如
object.memberFunction();
。
通过实例加以说明:
假设我们正在设计一个简单的图形类来表示矩形。
#include <iostream>
using namespace std;class Rectangle {
private:double length;double width;public:Rectangle(double len, double wid);double getArea();void display();
};Rectangle::Rectangle(double len, double wid) {length = len;width = wid;
}double Rectangle::getArea() {return length * width;
}void Rectangle::display() {cout << "Length: " << length << endl;cout << "Width: " << width << endl;cout << "Area: " << getArea() << endl;
}int main() {Rectangle rect(5.0, 3.0);rect.display();return 0;
}
在上述代码中,我们定义了一个名为 Rectangle
的类,表示矩形。下面是对以上知识点在这个实例中的解释:
-
类和对象:
Rectangle
是我们自定义的类,用于表示矩形。rect
是Rectangle
类的一个对象,通过实例化类来创建的。
-
成员变量和成员函数:
length
和width
是Rectangle
类的成员变量,用于存储矩形的长度和宽度。getArea()
是Rectangle
类的成员函数,用于计算矩形的面积。display()
是Rectangle
类的成员函数,用于显示矩形的属性和面积。
-
构造函数:
Rectangle
类有一个构造函数,通过构造函数进行对象的初始化。- 构造函数的参数
len
和wid
用于初始化length
和width
成员变量。
-
访问修饰符:
length
和width
成员变量被声明为私有成员(private
),只能在类内部访问。getArea()
和display()
成员函数被声明为公有成员(public
),可以在类内部和类外部访问。
-
对象的创建和方法调用:
- 在
main()
函数中,通过Rectangle rect(5.0, 3.0);
创建了一个Rectangle
类的对象rect
。 - 对象
rect
调用了display()
方法,用于显示矩形的属性和面积。
- 在
更多推荐
【C++】类
发布评论