class A
{
protected:
void f();
}
class B : public A
{
protected:
void f()
{
A::f();
}
}
このように親クラスの関数を使うことはできますが、親クラスの演算子の使い方がわかりません。
class A
{
protected:
void f();
}
class B : public A
{
protected:
void f()
{
A::f();
}
}
このように親クラスの関数を使うことはできますが、親クラスの演算子の使い方がわかりません。
ユーザー定義型の演算子は、ファンキーな名前を持つ単なるメンバー関数です。したがって、それはあなたの例とかなり似ています:
#include <iostream>
class A
{
protected:
A& operator++() { std::cout << "++A\n"; return *this; }
};
class B : public A
{
public:
B& operator++()
{
A::operator++();
return *this;
}
};
int main()
{
B b;
++b;
}