访问说明符向范围基本方法

时间:2018-06-26 14:50:46

标签: c++ class inheritance scope

在以下完整程序中:

#include <vector>

class Derived : private std::vector<int> {
public:
  void f();
};

void Derived::f() {
  Derived d;

  d.std::vector<int>::push_back(0);
}

int main() {
  Derived d;

  d.f();
}

线

d.std::vector<int>::push_back(0);

可以替换为

d.vector<int>::push_back(0);

并且编译将在gcc 7和clang 6中完成警告提示。 我不明白为什么范围解析的std::部分是可选的,因为没有using namespace std声明。

0 个答案:

没有答案