在类的继承与派生中,为了保证标示符的唯一,就出现了标示符,形式是“::”。就是双冒号。
使用形式:类名::数据成员
类名::成员函数(参数)
一:多继承并且上级无基类的情况
在这种情况下,如果派生类中声明了 基类中同名的成员,就会出现同名隐藏。如果是成员函数,即使形参表不同,也不是重载函数,因为重载函数是在同一个作用域中声明的。但如果在派生类中的同名成员前使用“using 类名::成员函数(参数)“这种形式,那么如果参数表不同,就是重载函数了。当出现同名隐藏时,使用对象 访问同名成员时,只能访问新增的同名成员,如果要访问基类的同名成员,就要使用标示符来进行限定。如果派生类中没有同名成员,要访问基类的成员也要使用标示符进行限定。
二:多继承并且有上级基类的情况
在这种情况中,要访问间接基类的成员,要使用直接基类名进行限定才行。
在这种情况中,会出现同名成员有多个副本的情况,占用内存,要解决这个问题就出现了虚基类的概念。
以上就是我对于作用域标示符的认识。