Skip to main content

1.2 Advanrages & Disadvantages of CPP

1-Introduction
   Previous Post is 1.1 into to CPP
now we Discuss about Advantages and Disadvantages of CPP.




1.2 Advantages and Disadvantages
  
 Advantages

  1. vendor-neutral: The C++ Standard is the same in any platform or compiler.
  2. Industrial (as opposed to academic): evolved to satisfy the needs of software engineers, not computer scientists.
  3. Efficient,Compiles into highly optimized CPU-specific machine code with little or no run time overhead.
  4. Multi-pardigm: Allows the use and penalty-free mixing of procedural,OOP,Generic Programming,Function Programming etc.
  5. Strictly Statically typed (unlike python for example): a large amount of logic(and sometimes even calculations) can be proved and performed at compile time,by the type checking /inferring System.
  6. Has Deterministic Memory Management(as opposed to java,C# and Other languages with garbage collectors):the life time of every object is known with absolute precision,which makes destructors useful and RAII possible.
Disadvantage

  1. Very Complex! The learning curve is steep and takes a long time to climb,especially for those who know c or c# or Other superficially similar languages.
  2. Has the concept of "undefined behavior "(just like c)-- a large class of errors  that neither compiler nor the run time system is required to diagnose.
  3. has some design flaws,although they are largely fixed by boost libraries and the new language standard.
  4. lack network and async I/O ,graphics,concurrency,serialization,and many other facilities expected of modern languages,although that is also largely fixed by boost libraries and (as far as concurrency is concerned) the new language standard.

Comments

Popular posts from this blog

Using JavaFX in a NetBeans Application – Part 2

Part1 discussed how to use JavaFX to visualize data and other content in a NetBeans Platform application window. We showed you how to create JavaFX content from a TopComponent using FXML and a FXML controller class. In this post we describe the communication strategies you can use when integrating JavaFX content within a TopComponent (NetBeans Platform window). Communication Strategies The overriding goal in integrating JavaFX content in a TopComponent is to keep the JavaFX scene graph and its controller class encapsulated. Figure 1 shows the TopComponent, which is managed by the NetBeans Platform window system and communicates directly with the NetBeans Platform framework. Figure 1. Embedding JavaFX in a TopComponent The TopComponent invokes the FXMLLoader, which reads the FXML, builds the JavaFX scene graph, and instantiates the controller class. Any further manipulation of the scene graph from the TopComponent should go through public methods you provide in the contr...

Using JavaFX in a NetBeans Application – Part 1

We like the idea of visualizing application data with JavaFX. JavaFX makes it easy to add effects such as drop shadows, background gradients, and reflection to window content. You can also apply animations to rotate, scale, fade in or out, and move JavaFX elements. And, JavaFX is a viable solution if your visualization requirements include charts or 3D. In this post, we discuss some of the issues you will encounter when integrating JavaFX content in a NetBeans Platform application. Here are two examples of NetBeans Platform applications with integrated JavaFX content. Figure 1 shows a NetBeans Platform window displaying a JavaFX pie chart, with one of its slices animating after a mouse click. Figure 1. Pie Chart Animation Figure 2 shows a NetBeans Platform application with JavaFX 3D content. The left window shows the 3D Box primitive, which rotates when the window’s slider is adjusted. The right window shows 2D shapes with different depths in 3D space that also rotate when...

Cpp Tutorials

1-Introduction   1.1 Intro To C++   1.2 Advantages and Disadvantages 2-An Example of C++ Program   2.1 Structure of Program 3-Variables and Operators   3.1 Variables   3.2 Variables Scope   3.3 Constants-Literals   3.4 Variables Storage Classes   3.5 Operators 4-Compund Types   4.1 Array   4.2 String   4.3 Pointer   4.4 Structure   4.5 Reference   4.6 Enumration and Type Def 5-Input and Output   5.1 Cout (Output Stream)   5.2 Cin  (Input Stream)   5.3 Cerr (Error Stream)   5.4 Clog (Log Stream) 6-Flow of Control 6.1 Conditional Branching if 6.2 Conditional Selection Switch 6.3 Loop-While and For 6.4 Break and Continue 6.5 Random Number 7-Functions   7.1 Function Basics   7.2 Declaration ,Call and Arguments   7.3 Inline Function   7.4 Recursion 8-Object Oriented Approach   8.1 Classes Basics   8.2 Cons...