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

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

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

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

迷茫
迷茫

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

全部回覆(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的巢狀類別。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板