这两个语句有什么区别?

ob.A::ar[0] = 200;
ob.ar[0] = 200;

其中obA类的对象
class A
{
    public:
        int *ar;
        A()
        {
            ar = new int[100];
        }
};

最佳答案

在这种情况下没有区别。

该表示法:
obj.Class::member
只是为了解决继承带来的歧义:

class A {
public:
  int a;
}

class B {
public:
  int a;
}

class C : public A, B {
   void func() {
      // this objects holds 2 instance variables of name "a" inherited from A and B
      this->A::a = 1;
      this->B::a = 2;
   }

}

关于c++ - 这两个语句有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12885901/

10-12 04:35