c++类的封装例子

封装是面向对象编程的关键特性,它涉及将数据和行为打包在类中,以增强安全性及易维护性。通过定义私有成员变量和公共的访问器/修改器函数,外部代码能以受控方式交互。文中提供了一个Person类的例子,展示如何定义构造函数和成员函数来操作类的内部状态。
摘要由CSDN通过智能技术生成

封装是面向对象编程中的一个重要概念,可以将数据和行为封装在一个类中,使其更安全、更易于维护和管理。下面是一个简单的封装类的例子,以及具体的过程:

  1. 定义类名称和成员变量:首先,我们需要定义一个类的名称和需要封装的成员变量。例如,我们想要封装一个人类的基本信息,包括姓名、年龄和性别,我们可以这样定义:
复制// Person.h
#ifndef PERSON_H
#define PERSON_H

#include <string>

class Person {
private:
    std::string name;
    int age;
    char gender;
public:
    Person(std::string name, int age, char gender);
    std::string getName() const;
    int getAge() const;
    char getGender() const;
    void setName(std::string name);
    void setAge(int age);
    void setGender(char gender);
};

#endif

在这个类中,我们将姓名、年龄和性别作为成员变量进行了封装。注意,在这里我们使用了 private 关键字将这些成员变量设置为私有变量,这样外部代码就不能直接访问它们。

  1. 定义构造函数和成员函数:接下来,我们需要定义构造函数和成员函数,以便外部代码可以通过调用这些函数来访问和修改成员变量。例如,我们可以这样定义 Person 类的构造函数和成员函数:
复制// Person.cpp
#include "Person.h"

Person::Person(std::string name, int age, char gender) {
    this->name = name;
    this->age = age;
    this->gender = gender;
}

std::string Person::getName() const {
    return name;
}

int Person::getAge() const {
    return age;
}

char Person::getGender() const {
    return gender;
}

void Person::setName(std::string name) {
    this->name = name;
}

void Person::setAge(int age) {
    this->age = age;
}

void Person::setGender(char gender) {
    this->gender = gender;
}

在这个例子中,我们定义了一个构造函数,用于初始化对象的成员变量。我们还定义了一些成员函数,如 getName()getAge()getGender(),用于返回对象的成员变量值。我们还定义了一些 set 函数,如 setName()setAge()setGender(),用于设置对象的成员变量值。

  1. 使用封装类:最后,我们需要使用这个封装类。例如,我们可以这样创建一个 Person 对象并设置其属性:
复制#include <iostream>
#include "Person.h"

int main() {
    Person p("John", 30, 'M');
    std::cout << "Name: " << p.getName() << std::endl;
    std::cout << "Age: " << p.getAge() << std::endl;
    std::cout << "Gender: " << p.getGender() << std::endl;
    p.setName("Jane");
    p.setAge(25);
    p.setGender('F');
    std::cout << "Name: " << p.getName() << std::endl;
    std::cout << "Age: " << p.getAge() << std::endl;
    std::cout << "Gender: " << p.getGender() << std::endl;
    return 0;
}

在这个例子中,我们首先创建了一个 Person 对象,并使用构造函数设置了它的姓名、年龄和性别。然后,我们使用 getName()getAge()getGender() 函数获取对象的属性,并使用 setName()setAge()setGender() 函数修改对象的属性。最后,我们输出修改后的对象属性。

这就是一个简单的封装类的例子,具体的过程包括定义类名称和成员变量、定义构造函数和成员函数,以及使用封装类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值