using
一开始看起来是用于将特定函数(例如使用 using std::cout
)导入到范围内。但是,这个 using
实际上会将基类的所有构造函数导入到派生类中。这个 using
声明背后实际上隐藏着什么?template< typename T >
class Vec : public std::vector< T >
{
public:
using std::vector<T>::vector; // ?
//...
};
using
一开始看起来是用于将特定函数(例如使用 using std::cout
)导入到范围内。但是,这个 using
实际上会将基类的所有构造函数导入到派生类中。这个 using
声明背后实际上隐藏着什么?template< typename T >
class Vec : public std::vector< T >
{
public:
using std::vector<T>::vector; // ?
//...
};
using Base::Base;
),那么在初始化派生类时,该基类的所有构造函数(忽略成员访问)都会对重载决议可见。