摘要:
介绍 如果你是个模板的高手,你就可以将ATL的学习作为一种享受。在这一节中,我将要尝试解释一些ATL使用的模板技术。我不能保证你读完本节后能成为一个模板高手,只能是尽我所能让你在读完本文后能够更轻松地理解ATL的源码。程序35.程序的输出为:在这里,由于模板函数的关系,我们就没有必要分别重载int和char数据类型的函数版本了。其中很重要的一点是,函数的两个参数类型必须一致。但是如果我们传入... 阅读全文
摘要:
让我们来探究一些虚函数背后更加有趣的资料。 程序20.程序的输出为:这个程序清楚地示范了基类的函数是如何调用派生类的虚函数的。这一技术被用于不同的框架中,例如MFC和设计模式(比如Template Design Pattern)。现在你可以修改一下这个程序来看看它的行为,我将要在基类的构造函数中调用虚函数,而不是普通的成员函数。程序21. 程序的输出为:这个程序表明,我们不能在基类的构造函数中调用... 阅读全文
摘要:
介绍 在本系列的教程中,我要讨论一些ATL的内部工作方式以及它所使用的技术。 在讨论的开始,让我们先看看一个程序的内存分布。首先,编写一个简单的程序,它没有任何的数据成员,你可以看看它的内存结构。程序1.这个程序的输出为:现在,如果我们向类中添加一些数据成员,那么这个类的大小就会是各个成员的大小之和。对于模板,也依然是这样:程序2.现在程序的输出为:那么,再向程序中添加继承。现在我们使P... 阅读全文