C++类和对象(一)---类和作用域

1.什么是类

先来了解一下C语言的结构体
struct People
{
	char _name[20];//姓名
	int _age;//年龄
	char _gender[5];//性别
};
//C语言中结构体函数只能放在结构体外部

我们知道,在C语言的结构体中可以存放变量,但无法直接存放解决一系列相同问题的方法。在C语言结构体中用户只能了解结构体的成员变量,但是随意和时间的发展,人们发现在C语言结构体中也应该存放一下针对于解决该结构体成员变量的一些方法,将其封装起来,封装在一个结构体中,只给外部提供一些使用这些接口的调用函数。所以在此基础上,延伸出了一些面两对象语言,等等。

再来了解一下C++中的结构体
struct Peopel
{
	char _name[20];
	int _age;
	char _gender[5];
	void InitPeople(char* name, int age, char* gender)
	{
		...//初始化方法
	}
};

可以发现,在C++中,我们可以将成员变量以及成员方法(成员函数)放置在同一个结构体中,这样,就简易的实现了C语言中无法实现的成员方法放入结构体外部。经过多年的发展,C++也不局限于直将成员方法放入结构体中,所以发展出了可以将成员变量以及成员函数分类(私有,保护,公有)的三种类型,这样更能保护结构体的安全性,只提供一些用户使用的结构给予用户使用即可,所以C++将其用class来替代struct定义结构体---- (但是为了与C语言进行融合,C++并没有抛弃C语言经典的定义类的方式,但struct定义的C结构体在C++中默认为public成员)

2.C++类定义规范

类定义规范
class C
{
	public:
		int _c;
		void func1()
		{
			//func1
		}
	private:
		int _a;
		char _b;
		void func2()
		{
			//func2
		}
};

其中:
class:为C++中定义类的关键字,相当于C语言中的struct
People:为类的名称
{};:{}包裹的是类中的成员变量以及成员方法,最后类的末尾用;进行结束

成员变量和成员函数
成员变量

类中定义的变量,一般只在类内有效(static除外),表示该类需要的一些属性,又叫做成员属性。

成员函数

类中定义的函数,提供一些解决关于相同类的方法,又叫做成员方法。

3.类的使用方式

class People
{
	public:
		char _gender[5];
		void func1()
		{
			//func1
		}
	private:
		char _name[20];
		int _age;
		void func2()
		{
			//func2
		}
};

People p;
p._name = DHY;//error private成员为私有
p._func1();//没有问题

在类外进行访问类内成员时,需要考虑类中的访问限定符的限制

访问限定符

可以看到在上述People类中,有public、private等关键字,这就是类中的访问限定符。

  • public 类中的公有成员,可以在类外进行访问,一般作为类的调用接口来使用
  • private类中的私有成员,不允许在类外进行调用以及访问,只能在类中使用,但是可以跟据类中的public接口来调用。
  • protected类中的受保护成员,同样不能在类外进行访问,与private类似。在后面笔者谈及多态以及继承时在进行详细说明。
使用方式

通过在类外创建类对象来进行调用类内函数以达到面向对象的编程。

int main()
{
	People p;//通过创建对象来进行使用
	p.gender = "男";
	p.func1();
	
	return 0;
}

4.一个类也就是一个作用域

在声明一个类之后,也就是在类中是一个独立的作用域,可以使用作用域符号::来知名是哪个作用域的。

class Person 
{ 
	public:  
		void PrintPersonInfo(); 
	private: 
  		char _name[20];  
  		char _gender[3];  
  		int  _age; 
};
//这里需要指定PrintPersonInfo是属于Person这个类域 
void Person::PrintPersonInfo() 
{
cout<<_name<<" "_gender<<" "<<_age<<endl; 
}

类和对象需要好几集才能讲完。。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值