You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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设置私有成员name
  • std::cout << student.getName() << std::endl; // 通过getter读取私有成员name并输出
  • student.setAge(18); // 通过setter设置私有成员age
  • int studentAge = student.getAge(); // 通过getter读取私有成员age并赋值给变量

内容的提问来源于stack exchange,提问作者Romaisa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.02 02:24:56