Feature Post

Top

C++ Refresher Course - Interview Questions and Answers

Refresh your C++ days! This resource is not only an excellent resource to interview questions, I found the answers interesting enough to float your thoughts upon. Compiled by Dr. Fatih Kocan, Wael Kdouh, and Kathryn Patterson. Though, I am not sure how long this PDF is going to stay there.

My first love "was" and "is" C++ - just that I have been unable to spend time with it since I switched to .NET development stack. The world of dots. While rest of the class was moving into the Java and qualifying for the certifications of UML, the challenge of understanding C++ attracted me more into it. Luckily I got a chance to learn more about C++ from a university senior, now in Microsoft, Haroon Ahmed. He was the inspiration that I wrote multilingual chat server in plain VC++ and made it to the AQ Khan Research Labs, an state level software development competition.

In .NET, the emphasis is more on business, than the mere UI library that you had to create before developing your logic. Or everytime you start your Doc-View architected C++ application, you had to provide everything that would make your business logic work. And then move to business logic. More side-kick code was required to develop an app. And in .NET, seldom - very seldom, we find ourselves implementing the OnPaint, OnDraw, people do not know about the PreTranslateMessage(), yep I'm talking about VC++, WNDPROC, the DispatchMessage method. The power that VC++ brought with it - Absolute - the God Language.

Plus, the concept of CLR; the .NET exe and dll aren't really exe/dll. They are just the intermediate language for the CLR that would JIT the .EXE/DLL and turn that into machine language. How easy it is to disassemble your code! that hurts. (0:

Just so this may interests you, when a managed module is invoked, the OS(windows) "thinks" that its just another "normal"(win32) executable; then it tells the windows loader to load the file; the loader reads the idata section, and when it finds the reference of mscoree.dll, it knows that it now needs to load the managed module in CLR; and then eventually managed module's IL is JIT'ted(Just in time compilation) into native code; which means, MSCorEE.dll compiles IL to native CPU instructions. I wrote about it sometime ago.

But still, if you are to develop a mission critical system, or software that does some real time process, or rendering realtime data, with zero delays, and zero compromise on performance - C++ is the way to go.

Well, also, if you want more, for instance to know about STL, ATL, COM, DCOM development using VC++, check out the CODEGURU.com website. It has excellent, invaluable resources in their VC++ section.

WordPress Tags: Refresh,resource,Fatih,Kocan,Wael,Kdouh,Kathryn,Patterson,Though,development,Java,certifications,Microsoft,Haroon,inspiration,server,Khan,Research,Labs,competition,emphasis,library,logic,View,OnPaint,OnDraw,PreTranslateMessage,WNDPROC,DispatchMessage,method,Absolute,Language,Plus,concept,machine,Just,module,reference,compilation,MSCorEE,instructions,mission,system,data,zero,performance,instance,DCOM,CODEGURU,resources,software,loader

Blogger Labels: Refresh,resource,Fatih,Kocan,Wael,Kdouh,Kathryn,Patterson,Though,development,Java,certifications,Microsoft,Haroon,inspiration,server,Khan,Research,Labs,competition,emphasis,library,logic,View,OnPaint,OnDraw,PreTranslateMessage,WNDPROC,DispatchMessage,method,Absolute,Language,Plus,concept,machine,Just,module,reference,compilation,MSCorEE,instructions,mission,system,data,zero,performance,instance,DCOM,CODEGURU,resources,software,loader