类的封装和访问控制

封装有2层含义:
1 . 把属性和方法进行封装 (对成员变量和成员函数进行封装,就是把这两个放在类里面)
2 . 对属性和方法进行访问控制(通过public、private、protected对成员函数和成员变量进行封装,以达到访问限制)
public: 修饰的成员变量和函数 可以在类的内部和类的外部访问
private: 修饰的成员变量和函数 只能在类的内部被访问,不能在类的外部访问
protected: 修饰的成员变量和函数 只能在类的内部被访问,不能在类的外部访问, 用在继承里面可以被子类继承
类的对象的3种调用方式:
1.通过指针调用(类名 *P)
2.通过引用调用(类名 &P)
3.通过函数类型声明变量调用(类名 P)这会涉及到函数的拷贝构造

#include "iostream"
using namespace std;
//求圆形的面积
class circul//定义一个圆类
{
	int a = 0;//在class类中,未声明访问限制的变量是private型,而在struct中是public型
public:
	double c_r;
	double c_s;
public:
	double get_area()
	{
		double area = c_r*c_r*3.14;
		return area;
	}
	double get_long()
	{
		double Long = 2*c_r*3.14;
		return Long;
	}
};
//调用对象的三种方式
//1.通过指针调用
void printCircul1(circul *p)//注意,形参一定要用类型名修饰,即使是指针
{
	cout << "圆的面积" << p->get_area() << endl;
	cout << "圆的周长" << p->get_long() << endl;
}
//2.通过引用调用
void printCircul2(circul &p)
{
	cout << "圆的面积" << p.get_area() << endl;
	cout << "圆的周长" << p.get_long() << endl;
}
//3.通过函数类型声明变量调用,这会涉及到函数的拷贝构造
void printCircul3(circul p)
{
	cout << "圆的面积" << p.get_area() << endl;//在调用成员函数时,c++的对象调用成员函数其实是隐含的传递了一个this指针,这个this指针指向调用对象的内存地址,p=*this;所以this也拥有p的相关属性
	cout << "圆的周长" << p.get_long() << endl;
}
void main()
{
	circul c1, c2;
	c1.c_r = 10;//在一个类中,只要设置了变量的初始值,那么整个类中的函数都可以调用
	cout << "c1 s: " << c1.get_area() << endl;

	c2.c_r = 20;
	printCircul1(&c2);//指针调用
	printCircul2(c2);//引用调用
	printCircul3(c2);//变量调用
	system("pause");
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值