class A{
   A() {};
   ~A() {};
   class B {
          B() {};
      void  hello() { cout<<"hello";}
    }
void  callHello() {B::hello();}
}这种类型称为什么?有什么好用和不好?

解决方案 »

  1.   

    代码可能有问题,但我是想表达一种写法而以,有错误请指出!thx
      

  2.   

    这是一个嵌套的类,在某种情况下,是有必要的。
    比如说:
         你用class A描述一辆汽车,用class B描述它的发动机,用class c描述它的轮胎,用class D描述汽车仪表。
    那你就需要这种嵌套式的定义了:
    class A
    {
       .....
       class B
        {
          ...
        }
        class C
        {
          ... 
        }
        class D
        {
         ...
        }
    };
      

  3.   

    class A{
       A() {};
       ~A() {};
       class B {
              B() {};
       public:
      static  void  hello() { cout<<"hello";}
        };
       public:
       void  callHello() {B::hello();};
    };
      

  4.   

    A好像叫做嵌套类,不过B::hello的用法错了,应该换成B b;b.hello
      

  5.   

    同意 RickeyLau(RickeyLau) 的嵌套类的一个应用就是用在MFC中来实现COM,而ATL是用多重继承得到的。在《Inside Vc++》中关于COM的章节有这方面的介绍。
      

  6.   

    嵌套类在微软的ATL中应用比较多
      

  7.   

    这种跟这样定义有何区别:
    class B{
    B();
    void Hello();
    }class A{
    A();
    B b;
    void callHello() {b.Hello()};
    }
    我觉的这样更好理解