|
8、构造函数(constructor)
当创建一个对象时,系统先根据类定义的成员变量为对象分配内存空间,然后自动调用对象的构造函数对这段内存空间进行初始化处理,从而完成对象的初始化。
构造函数的作用:
为对象分配空间;对数据成员赋初值,请求其他资源
构造函数的调用:
构造函数的特点:
构造函数是与类同名的成员函数
可有任意类型的参数,但没有返回类型
若构造函数无参数,则声明对象时也不能给出参数
构造函数的种类:
带参数的构造函数可以在创建对象时,用具体数值初始化数据
成员和各种数据元素。可方便实现对不同对象进行初始化。
构造函数的首部:构造函数名(形参列表)
定义对象的一般格式
类名 对象名(实参列表)
重载构造函数:
构造函数可以像普通函数一样被重载
在类中可以定义多个构造函数,以便对类对象提供不同的初始化方法
根据说明中的参数个数和类型选择合适的构造函数9、析构函数(destructor)
构造函数的反函数,析构函数是用于取消对象成员函数,当一个对象生命期结束时,系统自动调用析构函数,释放对象所占内存空间。
析构函数的作用:
进行清除对象,释放内存等
10、This指针:
This指针是一个特殊的隐藏在对象中的指针,每一个处于生存期的对象都有一个this指针,用于指向对象本身。
当类的某个非静态成员函数被调用时,系统通过this指针确定是哪一个对象的该成员函数被调用。实际上,this指针总是作为一个隐含参数传递给类的每一个成员函数。
11、静态成员
关键字static用于说明一个类的静态成员
- 静态成员提供了一个同类对象的共享机制
把一个类的成员说明为stastic时,这个类无论有多少个对象被创建,这些对象共享这个stastic成员
- 静态成员属于类,它不是对象成员。
静态类成员数据:
- 静态成员是指声明为static的类成员在类的范围内所有对象共享某个数据
- 类定义中的静态成员生命期与整个程序相同
- 静态成员变量在类的内部声明,类的外部定义
- 静态数据成员不从属于任何一个具体对象,所以必须对它初如化,且对它的初始化不能在构造函数中进行。
静态数据成员的使用方法如下:(这个需要补充)
静态数据成员的定义与一般数据成员相似,但前面要加上Stastic关键词
静态数据成员VS全部变量:
静态成员的访问:
公有静态成员:
(1)通过对象访问,如: person1.count
(2) 在成员函数中访问
私有和保护静态成员:只能在成员函数中访问
静态成员函数:
可由任意访问权限许可的函数访问。
和一般成员函数类似,静态成员函数也有访问限制,私有静态成员函数
不能由外界访问。
只能访问静态数据成员、静态成员函数和类以外的函数和数据;不能访问
类中的非静态数据成员。
静态成员函数没有this指针
静态成员函数的作用:
处理静态数据成员
说明:在freebasic中将对象作为静态成员函数的参数,然后可以通过对象来访问它的非静态数据成员。
例子
Type foo
Declare Static Sub f (ByRef As foo)
i As Integer
End Type
Sub foo.f (ByRef self As foo) ‘这里的self就是类foo的一个实例对象。如果没有self这个实例对象,访问非静态成员将会编译错误。
Print self.i
End Sub
静态成员函数VS非静态成员函数:
根本区别是:
|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )
GMT+8, 2024-11-5 02:24 , Processed in 0.053447 second(s), 17 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.