有时候,在写connect的时候会去犹豫一个问题----我的槽函数到底需不需要为虚函数。这个问题在我每次写connect的时候我都会反问自己,因为确实,如果你不去深究里面的moc,你发现不了太多问题。 比如有这么一个demo.#include #include #include class Tes....
分类:
其他好文 时间:
2014-07-16 21:51:52
阅读次数:
206
重载和重写搞的差不多了,隐藏有有点混乱了,在此记一下,留作后看成员函数被重载的特征(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。重写(覆盖)是指派生类函数覆盖基类函数,--这是c++多态的标志,虚函数赋零则变成虚基类(纯粹的接口申明类),...
分类:
其他好文 时间:
2014-07-16 20:50:54
阅读次数:
131
本来是准备在工厂模式中顺便整理。但粗略浏览了,内容还是很多,需要单独开一篇。一、什么是多态性? 多态性可以概括为“一个接口,多种方法”。 多态与非多态的区别在于“成员函数调用地址的早绑定和晚绑定”。“早绑定”在编译期就可以确定函数的调用地址,是静态的;“晚绑定”在运行时才能确定函数的调用地址,是.....
分类:
编程语言 时间:
2014-07-16 20:46:22
阅读次数:
214
多继承class Person{public: Person(std::string theName); void introduce(); protected: std::string name;};class Teacher : public Person{pub...
分类:
编程语言 时间:
2014-07-16 20:45:08
阅读次数:
177
多态性(polymorphism)是指允许通一个函数(或是操作符)有不同版本,对于不同的对象执行不同的版本。c++支持一下两种多态(1)编译时的多态性,表现为函数名(或操作符)的重载。(2)运行时的多态性,表现为派生类和虚函数来实现。函数名重载:编译器能够比较具有同名函数的特征,通过识别实参的数目和...
分类:
编程语言 时间:
2014-07-16 20:15:53
阅读次数:
186
1. 说说简单的函数回调首先说说一种简单的函数回调机制(一种通过获取对象的指针来进行函数的调用方法)以下是代码演示---这是观察者(被回调)部分:class Observer{public: // 抽象观察者的纯虚函数 virtual void UpdateMessage() = 0;};class...
分类:
编程语言 时间:
2014-07-15 08:07:58
阅读次数:
324
大家都知道C++虚函数的机制,对于基类定义为虚函数的地方,子类假设覆写,在基类指针或者引用来指向子类的时候会实现动态绑定。 但假设指针去调用非虚函数,这个时候会调用C++的静态绑定,去推断当前的指针是什么类型,就去运行哪个类型的函数。 非常有一种比較经典的使用方法,就是Template Method...
分类:
编程语言 时间:
2014-07-14 08:53:47
阅读次数:
246
在校生总是纠结现在流行什么变成语言,学什么语言才会找到心仪的工作,在网上看了一个很好地帖子,讲解在学校的学习与找工作的事情。做过无数笔试题,做过无数面试题,基本上没遇到过很重视语言细节的语言本身方面,可能会问问虚函数和多态,重载,作用域,存储方式,字节对齐,一般问的不多,或者根本不问相反,对待你不懂...
分类:
编程语言 时间:
2014-07-13 19:23:55
阅读次数:
243
很久之前就学习了c++继承中多态,但始终没有理解多态性质。上周看c++ primer第四版看到讲解的虚函数,才明白了虚函数展示了继承多态,多态性表示父类指针(实际指向派生类)调用虚函数,实际调用的的是派生类重写的虚函数,重写体现了继承多态性。理解虚函数,重点理解虚函数表,表中指针具体指向哪个类的成员...
分类:
其他好文 时间:
2014-07-13 10:13:01
阅读次数:
206
前些日子,有个同学问我一个关于虚函数的缺省参数问题。他是从某个论坛上看到的,但是自己没想通,便来找我。现在分享一下这个问题。先看一小段代码:
#include
using namespace std;
class A
{
public:
virtual void Fun(int number = 10)
{
cout << "A::Fun ...
分类:
编程语言 时间:
2014-07-10 23:05:08
阅读次数:
297