Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!

Explicit Virtual Override And More In Modern C++

Explicit Virtual Override And More In Modern C++

Hello everyone, I hope now you, your computer, and your development software are enjoying your summer vacation, or at least you’re happy with your work 🙂 Over on LearnCPlusPlus.org, we add new C++ posts every day. These are good to learn the features of modern C++ compilers. In this round-up of recent articles, we explain some features of C++11 that tend to tighten the rules, to detect some problems that often arise by the virtual overrides. To achieve this goal, C++11 introduced two new contextual keywords, the final and the override specifiers.

In this post we explain, what is the virtual function specifier, what is override specifier, what is the explicit virtual override specifier, and how to use the final and the override specifiers. In addition, we explain how the range-based for loop works in modern C++. We try to explain each topic by giving very simple C++ samples and by using more complete C++ examples to highlight modern way of programming.

Where can I learn C++ with a free C++ compiler?

If you don’t know anything about C++ or the C++ Builder IDE, don’t worry, we have a lot of great examples on the LearnCPlusPlus.org website and they’re all completely free. Just visit this site and copy and paste any examples there into a new Console, VCL, or FMX project, depending on the type of post. We keep adding more C and C++ posts with sample code. In today’s round-up of recent posts on LearnCPlusPlus.org, we have new articles with very simple examples that can be used with:

Read the FAQ notes on the CE license and then simply fill out the form to download C++ Builder 11 CE.

How to use modern C++ with C++ Builder?

In modern C++ software, a virtual function is a function in a base class or struct that can be redefined in derived classes or structs. They are member functions whose behavior can be overridden in derived classes. The virtual function specifier is the ‘virtual’ specifier to declare a virtual function in a base class. In the first post, we explain how we can use virtual function specifiers in modern C++.How to learn C++ for free using C++ Builder CE? https://learncplusplus.org/what-is-a-virtual-function-specifier-in-modern-c/

The for loops are one of the great features of C and C++ language that has many options to break, continue, or iterate in a loop. In modern C++, there is a range-based for loop that makes it simple to iterate through a variable type that has members (i.e. strings, lists, arrays, vectors, maps, etc.). The range-based for loop is a feature for the for() loops introduced by the C++11 standard and in the next post, we explain what is range-based for loop. https://learncplusplus.org/what-is-a-range-based-for-loop-in-modern-c/

Modern C++ has many additions compared to the original C++ standard. Regarding virtual overrides, C++11 tends to tighten the rules, to detect some problems that often arise. To achieve this goal C++11 introduces two new contextual keywords, the final and the override specifiers. The override specifier is used to redefine the base class function in a derived class with the same signature i.e. return type and parameters. In the next post, we explain an override specifier in modern C++. https://learncplusplus.org/learn-how-to-use-the-override-specifier-in-modern-c/

The override specifiers are used with a C++ compiler that is compatible with C++11 and the other higher C++ standards. In another post, we explain the explicit virtual override specifier in modern C++. https://learncplusplus.org/what-is-an-explicit-virtual-override-in-modern-c/

C++11 introduced two new contextual keywords, the final and the override. The final specifier (keyword) is used for a function or for a class that cannot be derived and overridden by derived classes. This final specifier is used with the C++ compiler that has C++11 and the other higher C++ standards. In the last post, we explain how to use the final specifier in modern C++. https://learncplusplus.org/learn-how-to-use-the-final-specifier-in-modern-c/

How to learn modern C++ for free using C++ Builder ?

LearnCPlusPlus.org has been producing full of educational daily articles about C and modern C++ that can be used with C++ Builder, C++ Builder CE, Dev-C++, BCC Compiler and some other compilers such as the GCC compiler. Here are our post picks for today.


We like to hear your feedback. You motivate us so much with your likes and comments on social media (find us on Facebook, LinkedIn, Reddit, Twitter and all over) and here on the blogs too. Thank you for your valuable comments and questions. All of them help improve the quality of our future posts and new code in these posts.

We have a lot of unique posts waiting to come. We keep adding new topics every week about C++ in general and specific topics for C++ Builder, Dev-C++, and for the other C++ compilers. Please keep following our LearnCPlusPlus.org website for the latest posts and updates. Feel free to comment and share with your colleagues, students, members – knowledge is power, and knowledge shared is empowering.

What is new in C++ Builder CE?

C++ Builder 11 CE which is the free Edition of C++ Builder has been recently released. Embarcadero has made available a Community Edition license for the most recent 11.3 release of Delphi and C++Builder. This is a free edition of either Delphi or C++Builder for students, hobbyists, and startups (as the license is revenue-limited).

Explicit Virtual Override And More In Modern C++ The CE splash screen

What might be next for C++ Builder?

According to David Millington’s post, C++ Builder is aiming to include some amazing features; CLANG v15, support for C++20 and a lot of C++23 features, Win64 primary OS, new code completion, Visual Assist C++ navigation and refactoring, and lots more.

Disclaimer: All new features and improvements discussed in posts regarding future versions of RAD Studio are not committed until completed, and GA released.

Note that Embarcadero announced the release of RAD Studio 11 Alexandria Release 3, also known as RAD Studio 11.3, along with Delphi 11.3 and C++Builder 11.3. This release is focused on quality and improvements, building on the great new features in RAD Studio 11 Alexandria three previous releases.

Explicit Virtual Override And More In Modern C++ C++ Builder logo

C++ Builder is the easiest and fastest C and C++ IDE for building simple or professional applications on the Windows, MacOS, iOS & Android operating systems. It is also easy for beginners to learn with its wide range of samples, tutorials, help files, and LSP support for code. RAD Studio’s C++ Builder version comes with the award-winning VCL framework for high-performance native Windows apps and the powerful FireMonkey (FMX) framework for cross-platform UIs.

There is a free C++ Builder Community Edition for students, beginners, and startups; it can be downloaded from here. For professional developers, there are Professional, Architect, or Enterprise version.

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

About author

Dr. Yilmaz Yoru has 35+ years of coding with more than 30+ programming languages, mostly C++ on Windows, Android, Mac-OS, iOS, Linux, and some other operating systems. He graduated and received his MSc and PhD degrees from the Department of Mechanical Engineering of Eskisehir Osmangazi University. He is the founder and CEO of ESENJA LLC Company. His interests are Programming, Thermodynamics, Fluid Mechanics, Artificial Intelligence, 2D & 3D Designs, and high-end innovations.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.