主题
类的定义
类是 C++ 中面向对象编程(OOP)的一部分,它允许我们将数据和函数封装在一个单一的结构中。类不仅是创建对象的模板,还可以帮助我们通过成员函数对数据进行操作。理解类的定义及其构成是学习面向对象编程的基础。
类的定义
在 C++ 中,类是通过 class
关键字定义的。一个类包含成员变量(属性)和成员函数(方法)。通过类,可以创建多个对象,每个对象都有自己的成员变量,并可以调用类中定义的成员函数。
示例:定义一个简单的类
cpp
#include <iostream>
using namespace std;
class Person {
public:
// 成员变量
string name;
int age;
// 成员函数
void introduce() {
cout << "Hello, my name is " << name << " and I am " << age << " years old." << endl;
}
};
int main() {
// 创建类的对象
Person person1;
// 设置成员变量
person1.name = "Alice";
person1.age = 25;
// 调用成员函数
person1.introduce();
return 0;
}
输出:
Hello, my name is Alice and I am 25 years old.
在此示例中,Person
类包含两个成员变量(name
和 age
)以及一个成员函数(introduce
)。在 main
函数中,创建了 Person
类的对象 person1
,并通过该对象访问类的成员。
类的构造函数
构造函数是一个特殊的成员函数,在对象创建时自动调用,用于初始化对象的成员变量。如果没有定义构造函数,C++ 编译器会为类生成一个默认构造函数。
示例:定义构造函数
cpp
#include <iostream>
using namespace std;
class Person {
public:
string name;
int age;
// 构造函数
Person(string n, int a) {
name = n;
age = a;
}
void introduce() {
cout << "Hello, my name is " << name << " and I am " << age << " years old." << endl;
}
};
int main() {
// 创建对象时调用构造函数
Person person1("Alice", 25);
person1.introduce();
Person person2("Bob", 30);
person2.introduce();
return 0;
}
输出:
Hello, my name is Alice and I am 25 years old.
Hello, my name is Bob and I am 30 years old.
在此示例中,Person
类定义了一个带有参数的构造函数,用于初始化 name
和 age
。在 main
函数中创建对象时,构造函数被自动调用。
类的访问控制
C++ 类的成员可以使用访问控制符来限制外部访问。常见的访问控制符有:
public
:表示成员可以被外部访问。private
:表示成员只能在类的内部访问,外部不能访问。protected
:表示成员只能在类的内部和派生类中访问。
示例:使用访问控制符
cpp
#include <iostream>
using namespace std;
class Person {
private:
string name; // 私有成员,不能直接访问
int age; // 私有成员,不能直接访问
public:
// 公有成员函数
void setName(string n) {
name = n;
}
void setAge(int a) {
age = a;
}
void introduce() {
cout << "Hello, my name is " << name << " and I am " << age << " years old." << endl;
}
};
int main() {
Person person1;
// 通过公有成员函数访问私有成员
person1.setName("Alice");
person1.setAge(25);
person1.introduce();
return 0;
}
输出:
Hello, my name is Alice and I am 25 years old.
在这个例子中,name
和 age
是 private
成员,外部无法直接访问这些成员。我们通过 setName
和 setAge
公有函数来设置这些私有成员的值。
小结
- 类是 C++ 中面向对象编程的核心,定义类时需要使用
class
关键字。 - 类包含成员变量和成员函数,可以通过类创建多个对象,每个对象都有自己的成员数据。
- 构造函数用于对象的初始化,可以通过构造函数传递参数。
- 类的成员可以通过访问控制符(
public
、private
、protected
)来设置访问权限。
理解类的定义及其构成是学习 C++ 面向对象编程的基础,这些知识对后续深入学习更复杂的 C++ 特性至关重要。