摘要: 首先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指向mz的指针。 这样就很容易理解this 的类型应该是myclass *,而对其的解引用*this就应该是一个myclass类型的变量。通常在 阅读全文
posted @ 2012-07-14 14:31 倦飞L 阅读(132) 评论(0) 推荐(0) 编辑
摘要: C++中的虚函数一、定义定义:在某基类中声明为 virtual并在一个或多个派生类中被重新定义的成员函数。 语法:virtual 函数返回类型函数名(参数表) { 函数体 } 用途:实现多态性,通过指向派生类的基类指针,访问派生类中同名覆盖成员函数 虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public。定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。二、作用虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,在派生类中重新定义的函数应.. 阅读全文
posted @ 2012-07-14 14:22 倦飞L 阅读(146) 评论(0) 推荐(0) 编辑
摘要: C++面向对象编程(二)一、重载与覆盖成员函数被重载的特征:(1 )相同的范围(在同一个类中);(2 )函数名字相同;(3 )参数不同;(4 )virtual关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1 )不同的范围(分别位于派生类与基类);(2 )函数名字相同;(3 )参数相同;(4 )基类函数必须有virtual关键字。二、隐藏规则(1 )如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。(2 )如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被 阅读全文
posted @ 2012-07-14 11:30 倦飞L 阅读(124) 评论(0) 推荐(0) 编辑