类与对象学习总结

      首先,类与对象是一种新的编程思维,比起C语言面向过程的编程方式不同,类与对象关注的是对数据的操作,注重结果。
      所谓类,就是包含成员函数的结构体,是一组具有相同属性和行为的对象的抽象。而对象就是具体化的类实例,对象有其具体的属性和行为。类的基本思想是数据抽象与封装。数据抽象是一种依赖接口和实现分离编程的技术。类的接口包括用户能执行的操作,类的实现则包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。         
    这里主要总结如何构建一个简单的类。以学生类为例          
    从实际出发,所有的学生都有学号、姓名、班级、学科成绩、学科学分、绩点、排名以及兴趣爱好等等组成部分,这在类中可是做为数据成员,在这其中,学号姓名等是可以直接输入的,而绩点和排名则需要计算,计算的过程依赖于函数实现,而函数就是类的成员函数。因此只要我们将数据成员与成员函数结合到一起,通过成员函数对数据成员的操作实现特定功能,类的构建也就完成了。        
    数据成员声明后需要初始化,类内初始化就是直接在声明数据成员后赋值,另外也可以通过构造函数初始化,这个在之后介绍。         
    成员函数在类内定义,定义完之后可以选择在类外或类内直接声明,当在类外声明时,格式如下:
    函数返回值类型   类名::函数名 (){函数体}。         double student::ans(){	for(int i = 0;i<grade.size();i++)		a[i] = (grade[i]-50)/10*0.5;}          
    面向对象的重要思想是对数据进行封装,以免外界修改某些重要数据。因此需要利用访问限定符进行限定,class中的成员默认为私有数据,除类自身函数以及友元函数可以调用外,其他均不可以调用,因此增加了安全性。          
    每个成员函数都有一个隐含的参数,指向接收消息的对象,成为this指针。Student类的this指针的类型是Student *。this指针是一个常量,含有当前实施调用的对象的地址。不能改变this指针的值,也不能去this指针的地址。this指向的是对象中的数据成员。          
    访问器和修改器是查看和修改数据成员的函数,其实与普通成员函数没有太大区别,访问器返回要访问的数据,修改器利用形参初始化数据成员,例如访问器const string getName(){	return name;}修改器const string setName(string s){name=s;}            
    关于友元,这玩意儿和c++封装性的原则相悖,简单来讲,在函数前加friend后,这个函数就可以调用。一般不使用。          
    构造函数和析构函数是对称存在的,一个用于初始化,一个用于销毁对象释放内存。 https://blog.csdn.net/hlsdbd1990/article/details/46559501这篇文章讲的特别好,清楚明白。          
    析构函数比较简单,~Student(),没有返回值,也没有初始化列表,一旦调用随即销毁,不能重载,是唯一的一个析构函数。但是析构函数不是必需的。  
    const 成员是对数据函数的常量限定,也就是说,对于具体对象而言,const常量是不可更改的,对于类来说可以修改,区别于static成员。const成员函数表明函数对数据只读不写,关于const成员函数的定义和调用的几种情况可以参考课本209页中间部分的内容。           static成员是类的成员,是函数之间共享的数据。可参考文章 https://blog.csdn.net/hlsdbd1990/article/details/46609533
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值