1 / 10

Assessment – C++

Assessment – C++. Jim Fawcett CSE687 – Object Oriented Design Spring 2004. C++ - Strengths. Is very powerful Can program at very low level or very high level of abstraction Has direct access to memory User defined objects are first class citizens

karim
Download Presentation

Assessment – C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Assessment – C++ Jim Fawcett CSE687 – Object Oriented Design Spring 2004

  2. C++ - Strengths • Is very powerful • Can program at very low level or very high level of abstraction • Has direct access to memory • User defined objects are first class citizens • Supports structured design, object oriented design, and generic design • Has a flexible memory model – static, stack, and heap • Language emphasizes performance • You don’t pay for features you don’t use • Almost no runtime checking • Is platform agnostic • Language and standard library apply to all platfroms • Easy to isolate platform dependencies in small modules. • Has a governing standard

  3. C++ Strengths • C++ is widely used • There are a lot of resources available: • Stroustrup’s Site • Herb Sutter's Site • CodeProject • Chris Sell's Site • Boost C++ Library • C++ at Microsoft

  4. C++ - Weaknesses! • C++ is a complex language • Context dependent • The keyword static has four distinctly different meanings, depending on the context of its use. • Has a lot of rules that are not enforced by the compiler • Use virtual destructors • Use initializers in constructors • Don’t return references to temporaries • Most rules have exceptions • Compiler will automatically generate constructors: • All constructors? No. Which ones? That depends. • In fact, the language implies many implicit operations. • The good news is that C++ does lots of things for you! • The bad news is that C++ does lots of things for you!

  5. C++ Weaknesses? • Safety is not automatic • No bounds checking • Direct access to memory • Can break the type system with casts • Thrown exceptions can leave program in undefined state. • However, you are in control! • You want bounds checking – then build it into your class – it’s not hard. • You can create smart, safe pointers if you want – we’ll see examples later. • You can safely cast and write exception safe code. You just have to know how! • That’s why, among other reasons, that you are here.

  6. C++ - Weaknesses • Things not supported by the language • Threads and synchronization • Directory services • Graphical User Interfaces • Network programming • Internet programming • Database operations • You can provide all those things. • That’s what we used to do in CSE681 – SW Modeling & Analysis

  7. C# - Strengths

  8. Ok, That’s a joke! I like C# too.

  9. Resources To Help You • Class Texts • Reference in SciTech Library – Carnagie Hall, south east corner • Friday morning help sessions: • 9:00 – 12:00 in CST 2-120 • Teaching Assistants: • Office Hours • Help Sessions • One or two sessions covering Visual Studio IDE • Computer Lab, CST 3-201, scheduled as needed

  10. End of Assessment

More Related