01 2007 档案

摘要:析构函数如果一个类想被别人继承,通常析构函数要声明为虚函数,否则,如下代码就会出现未定义情况。Base* p=new Derived();delete p;这句话反过来说,就是如果你不打算让别人派生你的类,就不要把析构函数声明为虚函数,当然对方是菜鸟的话,你也没办法。极端特殊情况下,只要使用者保证不会多态的析构(像上面的例子),也可以通融。继承与访问权限基类的private成员,只能由基类或者基类的友元访问,也就是说既不能被类外部的调用者(客户)访问,也不能被子类访问。或许是提供一种相对宽松的选择,protected成员允许派生类访问,但是拒绝外部调用者的访问。<<C++Prime 阅读全文
posted @ 2007-01-31 18:15 反正我信了 阅读(657) 评论(0) 推荐(0)
摘要:虚函数的内存布局一个拥有虚函数的类内部会有一个成员变量vptr,一个四字节大小的指针,指向虚函数表,虚函数表中记录了该类的各个虚函数的入口地址,如果该类重载了继承的虚函数,那么就存放自己的虚函数地址,否则就是父类的虚函数地址。class A{public: virtual void f(){}; virtual ~A(){};};class B:public A{ void f(){int i=0;};};A* pA=new B();pA->f();对于f的调用操作编译器有如下动作:void B::f()函数解释为void f(B* this);pA->f()解释为 (*pA-&g 阅读全文
posted @ 2007-01-16 23:22 反正我信了 阅读(1733) 评论(0) 推荐(0)
摘要:1)使用wsdl2h命令,从wsdl文件中提取web service的信息到.h文件中wsdl2h c:/gsoaptemp/DataService.wsdl我的电脑是WinXP sp2,-o参数无效,并且wsdl文件也不能通过指定url来获取2)使用soapcpp2命令,编译刚才生成的.h文件中,产生代理类以及其他文件比如:DataServiceSoap.nsmap、soapC.cpp、soapClient.cpp、soapClientLib.cpp、soapDataServiceSoapProxy.h、soapStub.h3)建立vc8工程,注意引入wsock32.lib库文件,其余头文件 阅读全文
posted @ 2007-01-10 16:21 反正我信了 阅读(264) 评论(0) 推荐(0)
摘要:WTL7.5在VC8中的使用简单剖析目录前言... 1WTL7.5安装... 1WTL 对话框... 2WTL窗口... 5SDI窗口... 5MDI窗口... 7进程入口---_tWinMain. 8前言 我看了很多关于MFC/ATL/COM方面的书,我发现国外的技术作者大多喜好挖掘代码内部最晦涩难懂的精华部分,试图解释给读者,当然我非常感激,我也因此受益匪浅。但是常常发现当我在钻研技术底层的时候,容易迷失了方向,搞不清这些东西做什么用。我常常想,写书的人,在每每挖掘内核的时候,总是能在一开始提纲携领的描述一下我们要做什么,可能效果好得多。但是也许那些人实在站在比我高得太多的山巅上,那些在他 阅读全文
posted @ 2007-01-06 18:12 反正我信了 阅读(405) 评论(0) 推荐(0)