封装是以类的方式实现的,在C++中创建一个类需要使用关键词class
语法:
class Person//class 类名 { public: //类中的行为 也称为 成员函数 成员方法 void SetName(string name)//设置姓名 { m_Name=name; } void SetAge(int age)//设置年龄 { m_Age=age; } //类中的属性 也称为 成员属性 成员变量 string m_Name; //姓名 int Age; //年龄 };
如同上方创建一类事物的共同属性,并将其封装在一个类中。
//public: 访问权限中的 公共权限 类内可以访问 类外可以访问 //protected: 访问权限中的 保护权限 类内可以访问 类外不可以访问 儿子也能够访问父亲中的保护内容 //private 访问权限中的 私有权限 类内可以访问 类外不可以访问 儿子不可以访问父亲的私有权限内容
在没有写明权限的情况下:
//struct默认权限为公共 struct C1 { int m_A; //默认权限 是公共 }; //class默认权限为私有 class C2 { int m_A; //默认权限 是私有 };
在一般情况下为防止修改成员属性,我们会将其设置为私有权限,但是可以通过公共的成员函数来进行间接的一些操作
在.h文件中:
写明类与其对应的成员属性和成员函数的声明:
#pragma once #include <iostream> using namespace std; //点类 class Point { //属性 private: int m_X; int m_Y; //操作 public: //设置x void set_X(int x); //获取x int get_X(); //设置y void set_Y(int y); //获取y int get_Y(); };
在.cpp文件中要写好成员函数的定义与属于哪一个类的作用域下的行为:
#include "Point.h" //点类 //在此处 这些函数是全局函数 所以需要告诉这些函数是在 //Point作用域下的函数 //设置x void Point::set_X(int x) { m_X = x; } //获取x int Point::get_X() { return m_X; } //设置y void Point::set_Y(int y) { m_Y = y; } //获取y int Point::get_Y() { return m_Y; }