blackinkbottle wrote:I think you should start from STL directly...embed STL concept from the first day...
Be warned embedded c/c++ is a very different species... Scheduling, FSM, concurrency synchronization, numerical stability would be the top priority of that field and defensive programming is the first thing.e_har, correct me if i am wrong.
blackinkbottle wrote:Be warned embedded c/c++ is a very different species...
km*** wrote:Do not start learning C++ from microsoft C++.NET. Instead, start with Ansi C++.
km*** wrote:Teach Yourself C++ in 21 days - Jessy Liberty
km*** wrote:The road you are taking is long and hard, BUT very rewarding and worthwhile. Do not give up!
km*** wrote:C++.NET is an adopted version (limited version) of C++ meant for development with .NET. For example,1.There is no Standard Template Library in C++.NET2.You cannot do pointer arithematic in C++.NET and other memory manipulation stuff.3.There is no multi-heritance in C++.NET4. There is no generic C++ templates concept in C++.NET
There are a few terms about C++ in Microsoft world that are really confusing the C++ new comers:
· The term MS C++ (or Microsoft C++), and also unmanaged C++ (since .NET), refers to the same thing – ANSI C++ standard with some Microsoft-specific extension/changes. Sometime it is referred to as “traditional C++” by .NET developers.
· Then the term Managed Extensions for C++ (or simply managed C++), which extends the “traditional” C++ to support .NET framework. It is called “managed” because your executable code is managed by the .NET runtime, which provides you with several great features, such as automatic memory management. On the other hand, traditional C++ code is managed by itself, and is run with its own risks of memory corruptions. Hence the name unmanaged C++. Both Visual C++ .NET 2002 & 2003 allow you to develop managed and unmanaged C++ code. The next version of managed C++ is coming and is called C++/CLI. You need to be aware of this if you are starting a new Managed C++ project. There are some language syntax changes.
· The term C++ .NET, I believe that it should refer to Visual C++ .NET. However, not all of C++ developers are using Visual C++ .NET for development. They have their own favorite editors to write code. Those C++ developers sometimes might say that they are developing applications in “C++ .NET”. I guess what they really mean is “C++ over .NET” or “non-traditional C++ on .NET”. What they mean should be “managed C++. They are developing in C++ and target the .NET runtime. You can play with managed C++ with the command-line compilation using this kit http://msdn.microsoft.com/visualc/vctoolkit2003/.
Then where do you start to pick up C++? I would ask you a question first. How would you see yourself in the next two or three years as a software developer? If you are doing your works in C++ on .NET, then managed C++ is the only way out. But be aware, when you define a managed type, though you get full access to the .NET runtime features, at the same time you lose some traditional C++ features for that type. Myself do not have a good feeling to suggest a new C++ learner to start with managed C++. For long run investment in C++ and .NET, the learning steps shall start with ANSI C++, then the concepts of .NET, and then managed C++ or C++/CLI.
Shawn