#include "CSharpTemp.h" Foo::Foo() { A = 10; P = 50; } int Foo::operator[](int i) const { return 5; } int Foo::operator[](unsigned int i) { return 15; } int& Foo::operator[](int i) { return P; } const Foo& Bar::operator[](int i) const { return m_foo; } Foo& Bar::operator[](int i) { return m_foo; }