c++ - 如何设计将一个类放在另一个类名下
迷茫
迷茫 2017-04-17 13:26:19
0
2
346

有两个类foo和bar,bar为foo服务
我希望设计成
foo 与 foo::bar , 而不是 foo 与 bar

类似
std::vector<int>::iterator 和 std::vector

应该怎样把bar的class放在foo里面?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(2)
巴扎黑

可以使用类嵌套或者typedef,你说的这种 vector::iterator 是用的typedef定义的类型别名

class Out {
public:
    class Inside {
    
    };
};

Out some1;
Out::Inside some2;
class A {

};

class B {
public:
    typedef A Inside;
};

A some1;
B some2;
B::Inside some3;
Peter_Zhu

C++ 支持嵌套类(nested class),例如

class foo {
    class bar { /* ... */ };
    /* ... */
};

class foo {
    class bar;
    /* ... */
};

class foo::bar {
    /* ... */
};

具体使用方法请参考 C++ Primer 5ed. section 19.5 Nested Classes。

另外std::vector<int>::iterator是另外一个类在std::vector中的别名(typedef),并不是std::vector的嵌套类。

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal