C++类和对象的基础概念

13 篇文章 0 订阅

基础概念

1.类是自定义数据类型,是C语言的结构体的进化
2.对象是类实例化出来的,用数据类型定义一个变量
3.类内的变量称为成员变量(成员属性);类内函数称为成员函数(成员方法)

class M//定义了个类
{
public:  //公共权限
	int a;//成员变量或成员属性
	void fun()//成员函数或成员方法
	{
		cout << "fun()" << endl;
	}
};
int main()
{
	M m;//m是一个对象 实例化
	return 0;
}

类的封装

封装是把变量和函数放到类内。然后给这些数据赋予权限
封装的好处
1.防止乱调用函数和变量,导致报错
2.维护代码比较方便

class Test
{
public:
	void Set(int x)
	{
		a = x;
	}
	void print()
	{
		cout << "a = " << a << endl;
	}
	int a;
}
int main()
{
	Test t;
	t.Set(10);//调用类内Set()函数给a赋值
	t.print;//调用print()函数打印a的值
	return 0;
}

访问权限

1.在类的内部(类作用域范围内),没有访问权限之分,所有成员可以相互访问。
2.在类的外部(类作用域范围外),访问权限有意义,访问权限分为public(公共权限),private(私有权限),protected(保护权限)。
3.在类外部,只有public(公共权限)修饰的成员才可以访问,在没有涉及继承与派生时,private(私有权限)和protected(保护权限)是同等级的,外部都不允许访问。

访问属性属性对象内部对象外部
public公共可以访问可以访问
protected保护可以访问不可访问
private私有可以访问不可访问
class People
{
//人的属性
public:
	int tell;//身高变量 设置共有可以让外人知道
//人的行为
public:
	void printTell()
	{
		cout << "我个子高" << endl;
	}
protected:
	int money;//钱设置保护,只有孩子们知道
private:
	int girlFriend_Num;//女朋友个数只有自己知道
};
int main()
{
	People p;
	p.tell = 185;//可以访问身高
	//p.money 保护权限的成员外部无法访问
	//p.girlFriend_Num 私有权限的成员外部无法访问
	p.printTell();//可以访问公共的成员方法
	return 0;
}

类和结构体的区别

class A
{
	int m;
};
struct B
{
	int n;
};
int main()
{
	A a;
	B b;
	//a.m;//出现错误无法访问
	b.n;//可以正常访问
	return 0;
}

class默认的权限是privare(私有权限);struct默认权限为public(共有权限)

尽量将成员成员变量设置为私有权限

1.将类内成员变量设置为私有权限,可以赋予访问数据的一致性,将函数设置为public权限,用类内函数访问类内成员,用户在访问类内成员的时候就只会访问函数不需要考虑是否加"()"。
2.使用成员函数可使对变量控制更精细,如果将所有成员变量设置为public权限,每个人都可以操作这个变量。如果设置为private权限,可以实现“不准访问”、“只读访问”、“读写访问”、“只写访问”

class Acc
{
public:
	//对只读属性进行只读访问
	int getOnlyRead()
	{
		return onlyRead;
	}
	//对只写属性进行只写访问
	void setonlyWrite(int v)
	{
		onlyWrite = v;
	}
	//对读写属性进行读写访问
	void getReadWrite(int v)
	{
		readWrite = v;
	}
	int setReadWrite()
	{
		return readWrite;
	}

private:
	int onlyRead;//只读访问
	int onlyWrite;//只写访问
	int readWrite;//读写访问
	int noAccess;//外部不能访问
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值