| 
 请各位帮忙看下,嵌套类的虚函数继承时如何调用,以及派生类中对嵌套类的虚函数实现过程是否正确。 void C::A::B::operate()                  //纯虚函数实现部分                                              //          C *c;                c->operate(); 编译不出错,运行报错,未初始化          请各位帮忙看下,嵌套类的虚函数继承时如何调用,以及派生类中对嵌套类的虚函数实现过程是否正确。  | 
|
class  C :public A::B, A
{
public:
    void operate() override;
};
void C::operate()
{
    printf("C 实现虚函数 operate()后的输出");
}
加A::B干嘛  | 
|
| 
 
不管是 A::B还是::A,这不是重点,那是当时测试时改的。。。。我现在想去调用实现的纯虚函数,但是出错,请帮帮忙改下这里吧,其他的小毛病就暂且绕过吧。 
 | 
|
| 
 不管是 A::B还是::A,这不是重点,那是当时测试时改的。。。。我现在想去调用实现的纯虚函数,但是出错,请帮帮忙改下这里吧,其他的小毛病就暂且绕过吧。  | 
|
| 10分 | 
 
你这代码写的很奇葩。。。
 
修改如下,编译运行通过 
#include "stdio.h"
class A
{
public:
    class B
    {
    public:
        virtual void operate()=0;
    };
};
class C : public A::B
{
public:
    void operate(); //这里继承父类的operate不用写成void A::B::operate(); 
};
void C::operate() //operate实现部分,被实现了就不是纯虚函数了
{   
    printf("C 实现虚函数 operate()后的输出\n");
}
int main()
{   
    C *c = new C();
    c->operate();
    
    return 0;
}
 | 
| 
 
谢谢你啊~~万分感谢~~~因为不熟悉,一直被这一块问题困扰,原谅我的贪心哈~还是想问您下: 
#include “stdio.h” class A { public: class B { public: virtual void operate()=0; }; B* GetB(); //问题在这里,我怎样才能获得嵌套类的指针,因为它本身是 嵌套抽象类 }; //后面又被继承,我想获得B的指针该怎么办?参数任意填写,有办法吗 class C : public A::B { public: void operate(); //这里继承父类的operate不用写成void A::B::operate(); }; 我怎样才能获得嵌套类B的指针???参数大侠来定义下吧  | 
|
| 
 
刚才说的不太准确,C类继承了B类,怎样通过GetB()获得继承了B的指针,即,获取C类指针后再强制转化为B类的。。。拜托大侠了。。。。。 
 | 
|
| 
 拜托大侠再帮帮忙,实在太穷了,没有多少分了。。。。  | 
|
| 5分 | 
 没完全读明白你的疑问,看看这是你需要的不: 
#include "stdio.h"
class A
{
public:
    class B
    {
        public:
            virtual void operate()=0;
    };
        
public:     
    B* GetB() {
        return m_b;
    }
    
    void SetB(B* b) {
        m_b = b;
    }
    
private:
    B* m_b;
};
class C : public A::B
{
public:
    void operate(); //这里继承父类的operate不用写成void A::B::operate(); 
};  
void C::operate() //operate实现部分,被实现了就不是纯虚函数了
{   
    printf("C 实现虚函数 operate()后的输出\n");
}
int main()
{
    A a;
    a.SetB(new C());
    A::B *b = a.GetB();
    b->operate();
    return 0;
}
 | 
| 5分 | 
 
建议你还是去巩固一下C++类相关的基础知识,系统的学习一下,会少走很多弯路! 
 | 
 恩,好。。。。。。会的,谢谢你哈,我顺道加你关注。。。。。感谢你的回答~  | 
|