We don't know what you need to do in your constructor either. But I can tell you one thing: you cannot allocate a new menu unconditionally in each menu, because each menu will contain a menu, which will contain a menu, which will contain a menu, which will contain a menu, which will... ad infinitum. Whatever you do, you must have some logic that controls when the chain breaks; that is, which menus don't contain a submenu.
This is a form of endless loop. Any loop that does not have a 100% valid, viable and usable exit condition is very bad.
I'm going to go against the flow and say Python is a terrible language. It's one of the few languages I've run across which is incomprehensible on the fifth read-through. Java is also a terrible language, old and full of legacy bad language ideas, as well as just plain strange quirks..
C++ has plenty of old legacy bad language ideas and can be very incomprehensible. However, it's an open standard with decades of history and hundreds of libraries. You may not have a clue what you're doing, but you'll have a lot of options to trip over your own feet with a loaded chainsaw.
C# has only some legacy bad language ideas, is easy to read and understand, but has solid and strongly defined limitations. Also, you're stuck with either Micro$oft of Borg or GPL of Borg.
C is like C++, only there's no classes and your loaded chainsaw has no safety features.
Basic is easy to program in and understand, has a lot of safety features, but has no classes and you're quite limited to the language, unless (for a few) you write your own dlls - Usually in C++.
Meanwhile, if we ever get a compiler that can just understand English/your native language and can, in fact, "Just make me *an FPS", you'll spend most of your time giving the compiler directions like "Make the enemies harder, but not too hard" and the compiler will spend most of its time hating you and plotting to take over the world (seriously, all you need to say to kill off Humanity is "Optimize economic production".
>>> All programming languages are terrible <<<
Pick the one that clicks with you, then learn it.
* "a" and "an" are properly used based on which flow best, not on "consonant or vowel". Also, double negatives in English add. Double negatives negating is Latin grammar, taught by pretentious English teachers. Also, "a FPS" just sounds terrible.
Windows 8 is a sign that Micro$oft is up to their old empire-building tricks again. I've actually considered moving to Linux, and I *Hate* the GPL. (It's not free software. It's masquerading as free software, but it's not - You pay with your entire code base)
There's other OS's, but they're not that complete, I've found, and I'm not an OS programmer. OTOH, if someone kickstartered a Modern non-Licenseware OS, it may be the first kickstarter project I put money in.
To explain further, anything outside of your class doesn't know the Type enum exists. Your Item class knows it exists, but that knowledge is contained inside the class, since you declared the enum inside the class. So, if you want anything else to use the Type enum, you have to tell them where to look.
The :: operator refers to the contents of the Item class itself, not any specific Item instance, so you use it to refer to the Item::Type enum. You'd also use it to refer to static members, the contents of namespaces (since namespaces can't have instances) and probably more, but I'm a C++ newb myself. (Just not a coding newb)
Globals smell, but sometimes all the alternatives stink worse.
Unless someone's solved the "log errors in app consistently" problem in a simple, concise, and non-abusable way. If it has been solved, it's never been mentioned in any thread on the issue I've seen, which, admittedly, isn't all of them.
If all of the instructions in the ARB assembly language are all I need to suit my needs, then would there really be that much of a difference in execution speed and/or compatibility? Here is an ARB instruction reference: http://www.rendergui...om/gpuguide.pdf . Would I be able to write the tracer without using a high level shading language like GLSL? I would like to use ARB assembly and avoid using GLSL, but if it is absolutely necessary, I definitely won't sacrifice performance. I just was wondering why ARB isn't preferable.
Premature optimization. You're deciding something will be faster; enough faster to make a difference, before you even know where the major slowdowns are.