如何调用 parent class 不同的运算符
How can I call parent class differnet operator
class foo{
protected:
int *data;
public:
int& operator[](int i);
int operator[](int i)const;
};
class goo : public foo{
int& operator[](int i)
{
foo::operator[](i);
}
int operator[](int i) const
{
foo::operator[](i);
}
};
我想打电话给parent的class接线员。
int& operator[](int i)
和
int operator[](int i)
但只调用了一个 parent 的运算符 int& operator[](int i)
。
我该如何解决??
你真的跳过了 goo 中第二个运算符的 const class:
#include <iostream>
using namespace std;
class foo{
public:
int& operator[](int i){ std::cout << "foo[] const" << std::endl; };
int operator[](int i)const { std::cout << "foo[]" << std::endl; };
};
struct goo : public foo{
int& operator[](int i)
{
foo::operator[](i);
}
int operator[](int i) const
{
foo::operator[](i);
}
};
int main()
{
goo g;
g[1];
const goo cg;
cg[1];
return 0;
}
sh-4.2$ main
foo[] const
foo[]
class foo{
protected:
int *data;
public:
int& operator[](int i);
int operator[](int i)const;
};
class goo : public foo{
int& operator[](int i)
{
foo::operator[](i);
}
int operator[](int i) const
{
foo::operator[](i);
}
};
我想打电话给parent的class接线员。
int& operator[](int i)
和
int operator[](int i)
但只调用了一个 parent 的运算符 int& operator[](int i)
。
我该如何解决??
你真的跳过了 goo 中第二个运算符的 const class:
#include <iostream>
using namespace std;
class foo{
public:
int& operator[](int i){ std::cout << "foo[] const" << std::endl; };
int operator[](int i)const { std::cout << "foo[]" << std::endl; };
};
struct goo : public foo{
int& operator[](int i)
{
foo::operator[](i);
}
int operator[](int i) const
{
foo::operator[](i);
}
};
int main()
{
goo g;
g[1];
const goo cg;
cg[1];
return 0;
}
sh-4.2$ main foo[] const foo[]