#include "iostream"
using namespace std;
/*
1)封装(Encapsulation)
A)封装,是面向对象程序设计最基本的特性。把数据(属性)和函数(操作)
合成一个整体,这在计算机世界中是用类与对象实现的。
B)封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让
可信的类或者对象操作,对不可信的进行信息隐藏。
备注:有2层含义(把属性和方法进行封装 对属性和方法进行访问控制)
C++中类的封装
成员变量,C++中用于表示类属性的变量
成员函数,C++中用于表示类行为的函数
2)类成员的访问控制
在C++中可以给成员变量和成员函数定义访问级别
Public修饰成员变量和成员函数可以在类的内部和类的外部被访问
Private修饰成员变量和成员函数只能在类的内部被访问
3)struct和class关键字区别
在用struct定义类时,所有成员的默认属性为public
在用class定义类时,所有成员的默认属性为private
*/
//求圆形的面积
//封装有2层含义
//1 把属性和方法进行封装
//2 对属性和方法进行访问控制
//3 类的内部和类的外部
//4 类的访问控制关键字
//public: 修饰的成员变量和函数 可以在类的内部和类的外部访问
//private: 修饰的成员变量和函数 只能在类的内部被访问,不能在类的外部访问
//protected: 修饰的成员变量和函数 只能在类的内部被访问,不能在类的外部访问, 用在继承里面
class MyCircle
{
public:
double m_r; //属性 成员变量
double m_s;
public:
double getR()
{
return m_r;
}
void setR(double r) //成员函数
{
m_r = r;
}
double getS()
{
m_s = 3.14*m_r*m_r;
return m_s;
}
protected:
private:
};
//类的封装的威力
//类封装的成员变量和成员函数 //可以调用类的成员函数
void printCircle01(MyCircle *pC)
{
cout<<"r"<<pC->getR()<<endl;
cout<<"s"<<pC->getS()<<endl;
}
void printCircle02(MyCircle &myc)
{
cout<<myc.getS()<<endl;
}
void printCircle03(MyCircle myc)
{
}
void main_类的封装第一层含有()
{
MyCircle c1, c2;
c1.setR(10);
cout<<"c1 s: "<<c1.getS()<<endl;
c1.setR(11);
printCircle01(&c1);
c2.setR(20);
printCircle01(&c2);
//引用
printCircle02(c2);
cout<<"hello...."<<endl;
system("pause");
}
class MyAdvCircle
{
private:
double m_r2; //没有权限修饰的成员变量 函数 是 默认是私有属性
private:
double m_r; //属性 成员变量
double m_s; //相当于你的银行卡密码
public:
double getR() //你的名字
{
return m_r;
}
void setR(double r) //成员函数
{
m_r = r;
}
double getS()
{
m_s = 3.14*m_r*m_r;
return m_s;
}
};
void main_02()
{
MyAdvCircle c1, c2;
//c1.m_r = 10;
c1.setR(10);
system("pause");
}
struct AAA
{
int a; //用struct关键字定义的类,不写,默认属性是public的.
//class private
public:
protected:
private:
};
void main()
{
AAA a1;
a1.a = 11;
system("pause");
}
017_类的封装&类的基本访问控制&class与struct的区别
最新推荐文章于 2024-09-27 11:26:03 发布