1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | class A { public: class B {public: bool value;}; A() { DoStuff(b_); } B b_; private: virtual void DoStuffImpl(B& b) = 0; void DoStuff(B& b) { return DoStuffImpl(b); } }; class X : public A { // ... private: virtual void DoStuffImpl(B& b); void UseBForSomethingElse(B& b); }; void X::DoStuffImpl(B& b) { UseBForSomethingElse(b); } void UseBForSomethingElse(B& b) { b.value = true; } int main(){ X x; return x.b_.value; } |
Y2xhc3MgQSB7CiBwdWJsaWM6CiAgY2xhc3MgQiB7cHVibGljOiBib29sIHZhbHVlO307CiAKICBBKCkgewogICAgICBEb1N0dWZmKGJfKTsKICB9CiAgQiBiXzsKIHByaXZhdGU6CiAgdmlydHVhbCB2b2lkIERvU3R1ZmZJbXBsKEImIGIpID0gMDsKICB2b2lkIERvU3R1ZmYoQiYgYikgeyByZXR1cm4gRG9TdHVmZkltcGwoYik7IH0KfTsKIApjbGFzcyBYIDogcHVibGljIEEgewogIC8vIC4uLgogcHJpdmF0ZToKICB2aXJ0dWFsIHZvaWQgRG9TdHVmZkltcGwoQiYgYik7CiAgdm9pZCBVc2VCRm9yU29tZXRoaW5nRWxzZShCJiBiKTsKfTsKIAp2b2lkIFg6OkRvU3R1ZmZJbXBsKEImIGIpIHsKICAgIFVzZUJGb3JTb21ldGhpbmdFbHNlKGIpOwp9CiAKdm9pZCBVc2VCRm9yU29tZXRoaW5nRWxzZShCJiBiKSB7CiAgICBiLnZhbHVlID0gdHJ1ZTsKfQogCmludCBtYWluKCl7CiAgICBYIHg7CiAgICByZXR1cm4geC5iXy52YWx1ZTsKfQ==
prog.cpp:25: error: variable or field ‘UseBForSomethingElse’ declared void prog.cpp:25: error: ‘B’ was not declared in this scope prog.cpp:25: error: ‘b’ was not declared in this scope
-
result: Compilation error (maybe you wish to see an example for C++ 4.7.2)


