S->kid1::val does not mean val from the kid1 subobject". It's just a name qualified by the type (not the subobject) that contains it I don't know why country1::kid1 is even accepted at all, but apparently it's a typedef for ::kid1 Two data members in world both have the qualified name ::kid1::val What you want is: world* w = new world; country1* const c1 = world; c1->kid1::val = 1.
S->kid1::val does not mean "val from the kid1 subobject". It's just a name qualified by the type (not the subobject) that contains it. I don't know why country1::kid1 is even accepted at all, but apparently it's a typedef for ::kid1.
Two data members in world both have the qualified name ::kid1::val. What you want is: world* w = new world; country1* const c1 = world; c1->kid1::val = 1.
Thanks for that fast reply! That worked :) – nem Mar 18 at 14:43.
It is. The error is due to a bug in your compiler.
Considering I've already explained why the code is wrong, any claim the code is right should come with a citation of the particular part of the C++ standard that you think allows it :) – Ben Voigt Mar 18 at 17:56 §3.4.3 Qualified name lookup is quite clear. Given w->country1::kid1::val, the compiler uses §3.4.5 Class member access to look up country1; according to §3.4.5/4, if the id-expression is a qualified-id (it is), this lookup takes place in both the class scope, and the context of the complete expression, so the compiler finds ::country1. Following that, the usual rules in §3.4.3 apply.
– James Kanze Mar 18 at 18:14 @James: And then the rule is applied again (there are two scope resolution operators), and the compiler finds ::kid1 (as I said in my answer). But ::kid1::val is ambiguous, the compiler is correct. There is no country1::kid1 apart from ::kid1, scope resolution operators work on type names, not subobject names (and base subobjects aren't named, so you can't say w->country1.
Kid1. Val). – Ben Voigt Mar 18 at 18:24 @Ben Voigt Which rule?
After the compiler has found country1, it's in a qualified name lookup (§3.4.3), and doesn't (or shouldn't) look anywhere but in country1. – James Kanze Mar 18 at 18:55 @James: What is w->country1::kid1? A type?
Then w->country1::kid1::val is ambiguous, because that type is twice a base class of world. A subobject? Then it's illegal to follow it with ::.
– Ben Voigt Mar 18 at 18:58.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.