1.什么是类的类型成员
比如string::size_type就是string类中的某一个类型成员,是类自定义的某种类型在类中的别名。
2.类型成员的定义方法
1.类型成员与其他成员一样存在访问限制,即可用private和public进行修饰。
2.定义类型成员可以使用typedef和using关键字。
class Screen {
public:
typedef std::string::size_type pos; //使用typedef 进行定义
using pos = std::string::size_type; //使用using
private:
pos cursor = 0;
pos height = 0, width = 0;
std::string contents;
3.我们用作用域运算符(::)来访问static成员和类型成员,比如可以这样访问上面类的类型成员
Screen::pos hs =10;
4.但是在模板类中,假定T是一个模板类型参数,当编译器在实例化之前遇到类似Screen<T>::pos
的时候,它不知道这个pos是一个类型成员还是静态成员。所以C++用typename显式表示模板类中的类型成员
typename Screen::pos p;//表示这是个类型成员
Screen::pos = p;//表示这个是静态变量
————————————————
部分内容参考CSDN博主「CPriLuke」的原创文章
原文链接:https://blog.csdn.net/cpriluke/article/details/79246869