在 C++ 中,类(class)和对象(object)是面向对象编程(OOP)的核心概念。类是一种用户自定义的数据类型,它将数据(成员变量)和操作这些数据的函数(成员函数)封装在一起。对象则是类的实例,通过创建对象可以使用类中定义的成员变量和成员函数。下面详细介绍 C++ 中类和对象的相关知识。
1. 类的定义
类的定义使用 class
关键字,其基本语法如下:
class 类名 {// 访问修饰符:public、private、protectedpublic:// 公有成员,外部可以直接访问// 成员变量数据类型 成员变量名;// 成员函数声明返回类型 成员函数名(参数列表);private:// 私有成员,外部不能直接访问,只能通过公有成员函数访问数据类型 成员变量名;protected:// 受保护成员,在派生类中可以访问数据类型 成员变量名;
}; // 注意这里的分号不能省略
示例代码:
#include <iostream>// 定义一个名为 Person 的类
class Person {
public:// 公有成员变量std::string name;int age;// 公有成员函数,用于显示信息void displayInfo() {std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;}
};
2. 对象的创建和使用
定义好类之后,就可以创建该类的对象,并使用对象来访问类的成员变量和成员函数。创建对象的语法如下:
类名 对象名;
示例代码:
#include <iostream>class Person {
public:std::string name;int age;void displayInfo() {std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;}
};int main() {// 创建 Person 类的对象Person person1;// 访问对象的成员变量并赋值person1.name = "张三";person1.age = 20;// 调用对象的成员函数person1.displayInfo();return 0;
}
3. 构造函数和析构函数
- 构造函数:是一种特殊的成员函数,用于在创建对象时初始化对象的成员变量。构造函数的名称与类名相同,没有返回类型。
- 析构函数:也是一种特殊的成员函数,用于在对象销毁时进行一些清理工作。析构函数的名称是在类名前加上波浪号
~
,同样没有返回类型。
示例代码:
#include <iostream>class Person {
public:std::string name;int age;// 构造函数Person(std::string n, int a) {name = n;age = a;std::cout << "对象已创建" << std::endl;}// 析构函数~Person() {std::cout << "对象已销毁" << std::endl;}void displayInfo() {std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;}
};int main() {// 使用构造函数创建对象Person person("李四", 25);person.displayInfo();return 0;
}
4. 访问修饰符
C++ 中有三种访问修饰符:
public
:公有成员可以在类的外部直接访问。private
:私有成员只能在类的内部访问,外部不能直接访问,通常通过公有成员函数来间接访问。protected
:受保护成员在类的内部和派生类中可以访问,外部不能直接访问。
示例代码:
#include <iostream>class Person {
private:std::string name;int age;public:// 构造函数Person(std::string n, int a) {name = n;age = a;}// 公有成员函数,用于获取私有成员变量的值void displayInfo() {std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;}
};int main() {Person person("王五", 30);// 不能直接访问私有成员变量// person.name = "赵六"; // 错误person.displayInfo();return 0;
}
5. 成员函数的实现
成员函数可以在类的定义中直接实现,也可以在类的外部实现。在类的外部实现成员函数时,需要使用作用域解析运算符 ::
。
示例代码:
#include <iostream>class Person {
private:std::string name;int age;public:Person(std::string n, int a);void displayInfo();
};// 在类的外部实现构造函数
Person::Person(std::string n, int a) {name = n;age = a;
}// 在类的外部实现成员函数
void Person::displayInfo() {std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;
}int main() {Person person("孙七", 35);person.displayInfo();return 0;
}
通过以上内容,你可以了解 C++ 中类和对象的基本概念、定义和使用方法。类和对象是 C++ 面向对象编程的基础,掌握它们对于编写复杂的程序非常重要。