interface IC {
int getC();
};
class C : IC {
public override int getC() { return 42; }
};
class B {
public IC buddy { get; set; }
public void someJob() const { if (buddy != null) Console.WriteLine(fBuddy.getC()); }
};
class A {
public A() {
c = new C();
b = new B();
b.setBuddy(c);
}
private C c;
private B b;
}
template <const char* X>void test() {}