C++ typedef在类中有什么用途

C++ typedef在类中有什么用途,c++,inheritance,C++,Inheritance,我有一些这样的代码 class A : public b<T> { public: typedef b<T> _baseclass; // why we need this declaration }; typedef在类中有什么用途? 定义是否仅限于此类? 我们是否将其创建为静态并在不装入类对象的情况下使用?此成员类型也将在类定义之外可用,这在模板代码中很方便。如果您将A传递到函数模板中,或者可能传递到其他也具有_基类成员类型的类中,那么您可以使用_基类找出

我有一些这样的代码

class A : public b<T>
{
public:
    typedef b<T> _baseclass; // why we need this declaration 
};
typedef在类中有什么用途? 定义是否仅限于此类?
我们是否将其创建为静态并在不装入类对象的情况下使用?

此成员类型也将在类定义之外可用,这在模板代码中很方便。如果您将A传递到函数模板中,或者可能传递到其他也具有_基类成员类型的类中,那么您可以使用_基类找出基类是什么,而无需确切知道顶级类型是什么

像std::vector和std::map这样的标准模板具有像value\u type这样的成员类型-这些类型并不表示基类,但具有类似的用途,即您可以在使用容器的任何位置使用value\u type,无论使用哪个容器

将typedef替换为using,因为我想这样做,下面是一个示例:

// The class templates

template <typename T>
struct Base {};

struct A : Base<int>
{
    using base_class = Base<int>;
};

struct B : Base<char>
{
    using base_class = Base<char>;
};

struct C : Base<bool>
{
    using base_class = Base<bool>;
};


// The example

template <typename T>
void foo()
{
    // typename needed because base_class is a "dependent name"
    // (just go with it)
    typename T::base_class the_base;

    // This line is to suppress "unused variable" warnings
    (void)the_base;
}

int main()
{
   foo<A>();
   foo<B>();
   foo<C>();
}

虽然这个特殊的程序实际上什么都不做,但它显示了一个函数模板foo,它可以知道在每种情况下基类是什么,而不需要进一步了解t到底是什么。它适用于任何添加了基类成员类型的类

看看typedef是什么,你知道它是什么吗?是的,给类型起另一个名字会有帮助。Ex typedef int;意思是int和int sameSo你刚才回答了你自己的问题question@Nagappa那么,如果您已经知道typedef是做什么的,那么这个问题的目的是什么?