C++学习日记 7.29
来源:互联网 发布:php 字节流 编辑:程序博客网 时间:2024/06/05 07:29
今天做试卷的时候,发现我对于友元和继承有点混了。复习一下,对比总结一下
出现位置以及关键字:
友元只能在类的内部声明 friend XX(XX可以是类,也可以是函数),继承是在类声明的开头 class A:public B(A是派生类,B是基类)。
友元的声明是在“母体”中,而继承的声明是在“子体”中。
作为友元的“子体”,是可以访问“母体”的一切成员的,包括为派生类准备的protected。而派生类只能访问基类的public和protected,依旧访问不了私有的private。
友元是不可以继承的。友元只是为“访问”而做的方便之门。
发现一门语言的笔试真的挺变态的。作为一门编程语言,能够做出程序才是真的。为什么要咬文嚼字的去用笔答呢。做了一份试卷,还没及格,我郁闷了,尤其改错题,要么就发现N个错误(试卷可能印错了),要么就是我用一个方法改没问题,但答案是另外一种改法。反正挺郁闷的。明天再好好深看看继承部分。
今天白天看了看static关键字,看了好几个教材,都有很多不能理解的地方。最后晚上发现,百度百科的居然更加全面,汗一下。
通常一个程序分几个区域 1.全局数据区,2 代码区,3 堆区,4 栈区。 由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区,全局变量和static动态变量存放在全局数据区。new会有对应的delete来释放内存,函数内部的自动变量会在函数结束后释放内存。 由此我们可以想到一个问题。当我们在函数,或者类调用结束后,不想释放内存,那该怎么办呢。作用1,就用static来定义。这样就避免了去释放它。其实原理就是static定义的数据存放在全局数据区。
还有几个作用
2,应用在全局变量,普通的全局变量是跨越多个文件的。加了static以后,就可以只在当前文件中有用,其他的文件不可访问,从而可以再定义相同名字的变量。而且静态全局变量未初始化的情况下默认为0
静态变量和普通变量的访问权限是一样的。只不过存放的内存位置不同。不要被静态全局变量这个词诱导。
类中的静态数据成员
类中的静态数据成员也很有意思。它并不数据任何一个类的对象。它只属于类,可以看成是类本身的一个属性。所以不可以在类的内部初始化。用“static 类型 名字”声明,然后在类的外面去初始化。 “数据类型 类名::名字 =数值”。调用有两种方法。 对象名.名字 或者 类名::名字。
类中的静态成员函数
这个也挺爽。他与普通成员函数有一个很大的不同,那就是没有this指针。还是那个道理,他只属于类,不属于任何对象。所以说,它不能有this指针指向当前对象。因为这个原因,省去了this指针,所以节省了系统开销,可以曾加程序效率。既然它不属于任何对象,由此,我们又能得出一个结论。 静态成员函数不可以访问非静态数据成员和非静态成员函数!他只能访问静态成员和函数 !
- Linux C 学习日记
- 090904c语言学习日记
- 090906c语言学习日记
- 090907c语言学习日记
- 090909c语言学习日记
- Linux C 学习日记 2.0
- Linux C 学习日记(一)
- 学习日记-C语言数据类型
- C语言学习日记01
- C语言学习日记02
- C语言学习日记04
- C语言学习日记05
- C语言学习日记06
- C语言学习日记07
- C语言学习日记08
- C语言学习日记09
- C语言学习日记10
- C语言学习日记11
- Oracle EBS 11i 表结构
- 【编程人员的自我修养】
- SqlBulkCopy 类使用
- mysql命令
- 驱动SYS开发总结
- C++学习日记 7.29
- 几种绑定的区别
- ASCII码表及键盘码表。
- 驱动开发和调试的环境设置(图)
- TortoiseSVN客户端的使用
- 微软解决方案框架 -- MSF的主旨和目标
- 通用SQL数据库查询语句精华
- Tomcat配置SSI
- 单片机的C语言中位操作用法