大家好!有一个solaris下gcc的问题想请教大家 我在solaris8下用gcc编译了一个很小的程序,其中同一个类离有一个虚函数调用了另一个虚函数,结果就编不过,这是怎么回事??急盼高手指教!!! solaris下难道不能调用虚函数吗?
class a { virtual void fn(...); virtual ~a(); } class b:public a { virtual void fn(); virtual ~b(); } int main() { a *temp=new (b); a.fn(); } 这是程序框架,请问: 将可变参数应用与虚函数的意义? 对于类中的析构函数为什么也要用virtual? 并请解释a.fn()调用的是那个类中的fn()?
gcc --version gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4) g++ --version g++ (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4) 编写程序时报这个警告,我的程序是从VC下移植过来的 我感觉这个警告太敏感了,怎么让gcc无视它,不再报? 我是linux新进,:谢谢!
1.有基类CBase和其派生类CDerive; 2.两个类的析构函数都不是虚函数; 3.我定义一个基类指针指向派生类,CBase *pB = new CDerive; delete pB; 4.我发现先构造CBase,然后构造CDerive,然后析构CBase; 我想知道为什么没有调用派生类的析构函数?析构函数写成虚函数到底是为什么?
源代码如下:
#include
#include
因为C++里面有指针,所以所谓的public,private在强类型转换面前没有意义。我们总是可以拿到私有的成员变量。
winXP+gcc3.4.2得到的虚函数表最后一项是0,是个结束符。
====================================
#include