楼主说的也有道理,我用古老的VC6.0编译也没有自动进行类型转换,编译错误
但是相同虚函数重载是相同函数直接发生的,能通过就是A了。楼主当时应该这么说。面试官也是个水货啊。
楼下怎么看?

解决方案 »

  1.   

    NN的,绝对通不过编译!函数名相同而形参不同,属函数重载。而pt声明成一个A类的指针,自然调用virtual int func(int i),但是对其引入char* 形参&temp,就会报错。
      

  2.   

    经专业鉴定,这个是不能通过编译的.
    1>d:\我的文档\visual studio 2005\projects\test\test\test.cpp(20) : error C2664: 'A::func' : cannot convert parameter 1 from 'char *__w64 ' to 'int'
    从这个错误就可以看出它根本就虚函数.对于A的对象还说,它只有一个函数.也没有重载.对于B来说,是函数重载.
      

  3.   

    虽然这个面试官水平可能不咋地,不过面试的目的不是宣传真理,是为了拿offer,指鹿为马的话,你附和就是了。
    真理自在人心。
      

  4.   

    这道题要考的东西显而易见
    但是题目本身确实有问题,一个是在大多数编译器中char*确实不能隐身式转换为int,当然编译会出错
    并且两个虚函数都只有声明没有定义,链接器也会出错
      

  5.   

    如果程序改写一下,初始化是怎么调用func函数的,还请各位大神帮忙解释下,最近在学习C++
    class A
    {
            public:
                      virtual int func(int i);
    };class B : public A
    {
            public:
                     virtual int func(int* c);
    };int main(void)
    {
            char temp = 'c';
            A *pt = new B;       pt -> func(&temp);        return 0;
    }