#include <iostream>
struct Matrix
{
int i;
int& operator() (int, int) { return i; }
};
struct ChildMatrix : Matrix
{
ChildMatrix& operator() (int, int) { return *this; }
};
int main() {
ChildMatrix m;
//m(1,1) = 1; //uncomment to get error
((Matrix&)m)(1,1) = 1;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IE1hdHJpeAp7CglpbnQgaTsKCWludCYgb3BlcmF0b3IoKSAoaW50LCBpbnQpIHsgcmV0dXJuIGk7IH0KfTsKCnN0cnVjdCBDaGlsZE1hdHJpeCA6IE1hdHJpeAp7CglDaGlsZE1hdHJpeCYgb3BlcmF0b3IoKSAoaW50LCBpbnQpIHsgcmV0dXJuICp0aGlzOyB9Cn07CgppbnQgbWFpbigpIHsKCUNoaWxkTWF0cml4IG07CgkvL20oMSwxKSA9IDE7IC8vdW5jb21tZW50IHRvIGdldCBlcnJvcgoJKChNYXRyaXgmKW0pKDEsMSkgPSAxOwp9