类的引入
在C++中,类是一种用于封装数据和功能的编程构造。它是面向对象编程(OOP)的基本组成部分,用于创建对象并定义它们的行为和属性。
类提供了一种定义对象的模板或蓝图,它描述了对象将具有的属性(数据成员)和操作(成员函数)。通过实例化类,可以创建具体的对象,每个对象都具有类定义的属性和行为。
类由两个主要部分组成:数据成员和成员函数。数据成员用于存储对象的状态或属性,而成员函数则用于定义对象的行为或操作。类还可以具有构造函数和析构函数,用于对象的初始化和清理。
通过类的访问说明符(public、private、protected),可以控制对象成员的访问级别。public成员可以被任何程序访问,private成员只能被类的成员函数访问,protected成员既可以被类的成员函数访问,也可以被派生类的成员函数访问。
以下是一个简单的C++类的示例:
class Circle {
private:
double radius;
public:
Circle(double r) {
radius = r;
}
double getArea() {
return 3.14 * radius * radius;
}
};
在上面的例子中,Circle
类具有一个私有的数据成员radius
和两个公有的成员函数Circle
和getArea
。构造函数Circle
用于初始化radius
成员变量,而getArea
函数用于计算圆的面积。
通过使用类,可以创建多个圆的对象,并调用它们的成员函数来获取它们的面积。例如:
Circle circle1(5.0);
Circle circle2(3.0);
double area1 = circle1.getArea(); // 获取第一个圆的面积
double area2 = circle2.getArea(); // 获取第二个圆的面积
类的定义
1.类声明:在声明类之前,需要使用关键字 class
或 struct
来声明类的名称。类声明通常放在头文件(.h文件)中,用于告诉编译器该类的存在。class MyClass { // 类成员和成员函数声明 };
class MyClass {
// 类成员和成员函数声明
};
2.成员变量:类可以包含成员变量,也称为数据成员。它们用于存储对象的状态或属性。成员变量定义在类的内部,可以在类的任何成员函数中使用。
class MyClass {
int myVariable; // 成员变量
};
3.成员函数:类中的成员函数用于定义对象的行为或操作。它们可以访问和操作类中的成员变量。成员函数定义在类的内部,可以在类的外部进行定义和实现。
class MyClass {
public:
void myFunction() {
// 成员函数实现
}
};
4.构造函数:构造函数用于初始化类的对象。它在对象创建时被调用,可以接受参数进行初始化操作。如果没有显式定义构造函数,编译器会生成一个默认构造函数。
class MyClass {
public:
MyClass() {
// 默认构造函数
}
MyClass(int value) {
// 带参数的构造函数
}
};
5.成员访问说明符:类中的成员变量和成员函数可以使用访问说明符进行限定。常见的访问说明符有 public
、private
和 protected
。它们决定了成员的访问权限。
class MyClass {
public:
// 公有成员
private:
// 私有成员
protected:
// 受保护的成员
};
例子:
#include <iostream>
using namespace std;
// 类的定义
class Person {
private:
string name;
int age;
public:
// 默认构造函数
Person() {
name = "";
age = 0;
}
// 带参数的构造函数
Person(string n, int a) {
name = n;
age = a;
}
// 成员函数,设置人的姓名
void setName(string n) {
name = n;
}
// 成员函数,获取人的姓名
string getName() {
return name;
}
// 成员函数,设置人的年龄
void setAge(int a) {
age = a;
}
// 成员函数,获取人的年龄
int getAge() {
return age;
}
// 成员函数,展示人的信息
void displayInfo() {
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
}
};
int main() {
// 创建 Person 对象
Person person1;
person1.setName("Alice");
person1.setAge(25);
// 使用成员函数获取并展示对象的属性
cout << "Person 1" << endl;
cout << "Name: " << person1.getName() << endl;
cout << "Age: " << person1.getAge() << endl;
// 创建另一个 Person 对象,并使用带参数的构造函数初始化属性
Person person2("Bob", 30);
// 使用成员函数展示对象的信息
cout << "Person 2" << endl;
person2.displayInfo();
return 0;
}
在上述示例中,我们定义了一个Person
类,它有两个私有的成员变量name
和age
,以及一些公有的成员函数用于设置和获取属性,并展示人的信息。
在main()
函数中,我们创建了两个Person
对象person1
和person2
。我们分别使用默认构造函数和带参数的构造函数初始化了这两个对象的属性。然后,我们使用对象的成员函数获取属性,并展示了每个人的信息。
输出结果应该如下所示:
Person 1
Name: Alice
Age: 25
Person 2
Name: Bob
Age: 30