类和对象—封装及导语—C++

1.类和对象定义

C++面向对象的三大特征

封装,继承,多态。

对象

C++认为万事万物皆为对象,对象有其属性和行为。

成员

类中的属性和成员


属性

也叫成员属性,成员变量

行为

也叫成员函数,成员方法(例如一个人可以称为对象,他的属性有姓名,年龄,身高,体重;行为有跑,走,跳。而具有相同性质的对象我们又叫做类,类如人类。)

2.封装

1.示例

设计一个圆类,求圆的周长

#include<iostream>
using namespace std;

const double PI = 3.14;
class circle
{
public://访问权限:公共的权限
	//属性
	int r;//半径
	//行为(以子函数的形式表现)
	double calculate()
	{
		return 2 * PI * r;//返回圆的周长
	}
};
int main()
{
	circle c1;//实例化(通过类创建一个对象)
	c1.r = 10;//对属性进行赋值
	cout << "圆的周长为:" << c1.calculate() << endl;
	system("pause");
	return 0;
}

程序结果为:

其中主函数中属性的赋值操作可以被行为中的赋值函数替代,从而在主函数中只需要调用这个行为就可以了(代码如下)

#include<iostream>
using namespace std;

const double PI = 3.14;
class circle
{
public://访问权限:公共的权限
	//属性
	int r;//半径
	//行为(以子函数的形式表现)
	double calculate()
	{
		return 2 * PI * r;//返回圆的周长
	}
	void setr(int r1)
	{
		r = r1;
	}
};
int main()
{
	circle c1;//实例化(通过类创建一个对象)
	//c1.r = 10;
	c1.setr(10);//对属性进行赋值
	cout << "圆的周长为:" << c1.calculate() << endl;
	system("pause");
	return 0;
}
2.访问权限
1.分类(默认访问权限是private)

           public(公共权限):类内和类外都可以访问

           protected(保护权限):类内可以访问,类外不可以访问

           private(私有权限):类内可以访问,类外不可以访问

2.代码(类内访问)
#include<iostream>
using namespace std;
#include<string>

const double PI = 3.14;
class person
{
public:
	string name;
protected:
	string car;
private:
	int password;
public:
//类内访问
	void fun()
	{
		name = "张三";
		car = "奔驰";
		password = 123456;
	}
};
int main()
{

	return 0;
}
3.代码(类外访问)
#include<iostream>
using namespace std;
#include<string>

const double PI = 3.14;
class person
{
public:
	string name;
protected:
	string car;
private:
	int password;
};
int main()
{
	person p1;
	p1.name = "李四";
	p1.car = "奥迪";//会报错,显示不可访问
	p1.password = 123456;//会报错,显示不可访问

	return 0;
}
4.struct和class区别

在C++中他们唯一的区别是默认的访问权限的不同。

struct默认权限为共有,class默认权限为私有。

5.对私有属性进行读写方法

可以用公共类型的子函数来进行读写操作。

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

const double PI = 3.14;
class person
{
public:
	void setname(string a)//写name
	{
		name = a;
	}
	string getname()
	{
		return name;
	}
	int getage()
	{
		return age;
	}
	void setidol(string a)
	{
		idol = a;
	}
private:
	string name;//可读可写
	int age;//可读
	string idol;//可写
};
int main()
{
	person p;
	p.setname("张三");//写name
	cout << p.getname() << endl;//读name
	p.setidol("李四");//写idol
	cout << p.getage() << endl;//读age
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值