对于嵌套类的解释说明,请参考:
有的时候,会定义比较复杂的模板嵌套类,此时直接访问嵌套在模板类中的模板函数或模板类会出现问题:
- #include
- using namespace std;
-
- template <typename T, typename N>
- class A {
- public:
- A(T t, N n) : a(t), b(n) {}
-
- template <typename U>
- class B
- {
- public:
- B(U u): b(u) {}
- void bOut()
- {
- cout << "bOut: " << b << "\n";
- }
- static void bS()
- {
- cout << "bS" << "\n";
- }
- private:
- U b;
- };
-
- template <typename V>
- void aOutCast() {
- cout << "aOutCast: " << static_cast
(a) << "\n"; - b.bOut();
- }
-
- void aOut() {