C++:封装

C++:封装

 

一、封装的定义 - 隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互,将数据和操作数据的方法进行有机结合。

函数是封装的一种形式:函数所执行的细节行为被封装在函数体内,被封装的元素隐藏了其实现细节,可调用函数但不可访问函数内部语句。

二、访问权限符

1、public(共有):类外可以访问;

2、private(私有):类外不可访问,继承类亦不可访问;

3、protected(保护):类外不可访问,继承类可访问。

4、作用范围:在该类作用域内,一个访问权限符出现位置起到下一个权限限制符出现位置止。

5、注意:访问权限符本质上是给编译器使用的,数据放在内存中是没有任何限制的。

6、尽量将成员属性设置为私有

a、可有效控制读写权限;

b、可对设置内容加以有限性验证。

三、class和struct的区别(仅默认权限不同)

class默认权限为私有权限;

struct默认权限为共有权限。

#include <iostream>
#include <string>
using namespace std;

class Person
{
public: // 共有
    Person(){} // 默认构造函数
	Person(string name, int age, string lover) // 有参构造函数
    {
        this->name = name;
        this->age = age;
        this->lover = lover;
    }

		
	void setname(string name)
    {
    	this->name = name;
	}
		
	string getname(void)
	{
		return this->name;
	}
		
	void setage(int age)
	{
        if(age<0 || age>150) // 有效性验证
		{
			cout<<"The enter data is wrong..."<<endl;
			return;
		}
		this->age = age;
	}
		
	int getage(void)
	{
		return this->age;
	}
		
	void setlover(string lover)
	{
		this->lover = lover;
	}
		
private: // 私有
	string name; // 设置可读(getname)可写(setname)接口函数
	int age; // 设置可读(getage)可写(setage)接口函数
	string lover; // 设置可写(setlover)接口函数,对外隐藏可读功能
};

void test(void)
{
	Person p("Lisi", 29, "lulu");
	p.getname();
	p.getage();
	//p.setlover();
}

int main()
{
	test();
	return 0;
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值