如何在C++类中声明私有成员并通过成员函数访问?附示例
C++私有成员声明与访问示例
在C++类中,私有成员可通过private:关键字声明(类默认成员访问权限为私有,也可省略该关键字直接定义),外部代码无法直接访问私有成员,必须通过类提供的公有成员函数(通常称为getter/setter)来读写这些私有数据。
完整示例代码
#include <iostream> #include <string> class Person { // 私有成员数据,默认访问权限为私有,也可显式添加private: std::string name; int age; public: // 设置名字的setter函数 void setName(const std::string& newName) { name = newName; } // 获取名字的getter函数,const表示不会修改类成员 std::string getName() const { return name; } // 设置年龄的setter函数,附带合法性校验 void setAge(int newAge) { if (newAge >= 0) { age = newAge; } else { std::cout << "年龄不能为负数" << std::endl; } } // 获取年龄的getter函数 int getAge() const { return age; } }; int main() { Person p; // 核心操作示例 p.setName("Alice"); std::cout << "姓名:" << p.getName() << std::endl; p.setAge(25); std::cout << "年龄:" << p.getAge() << std::endl; p.setAge(-5); // 触发非法输入提示 return 0; }
关键说明
- 私有成员
name和age仅能被类内部的成员函数访问,外部代码(如main函数)直接写p.name = "Bob"会触发编译错误。 - Setter函数用于修改私有成员,可嵌入数据校验逻辑保证合法性;Getter函数用于读取私有成员,通常声明为
const以避免意外修改类数据。
5条独立示例语句
Person student;// 创建类的实例对象student.setName("Charlie");// 通过setter设置私有成员namestd::cout << student.getName() << std::endl;// 通过getter读取私有成员name并输出student.setAge(18);// 通过setter设置私有成员ageint studentAge = student.getAge();// 通过getter读取私有成员age并赋值给变量
内容的提问来源于stack exchange,提问作者Romaisa
相关产品推荐
相关产品推荐

