Get the App
SLTechnology News&Howtos  ›  Development  › 

What is the NVI mechanism of C++ programs?

Shulou Source: shulou.com Published: 2022-05-31 22:20:01 10月04日 Update

This article mainly introduces the relevant knowledge of what the NVI mechanism of C++ program is, the content is detailed and easy to understand, the operation is simple and fast, and it has certain reference value. I believe you will gain something after reading this article on the NVI mechanism of C++ program. Let's take a look at it.

1. Brief introduction

We can see this phenomenon in the standard C++ library:

Six public virtual functions, all of which are std::exception::what () and their overloads.

142 non-public imaginary functions.

What is the purpose of this design, and why do you "superfluously" set the virtual function to non-public?

This is what the NVI mechanism requires: declare virtual functions as non-public and declare public functions as non-virtual-either virtual or public.

two。 Mechanism analysis

Programmers often publicize virtual functions in the base class to provide a definition of an interface (the work of virtual) as well as its implementation (a concrete implementation).

Class Base {public: virtual void Foo (int) {cout

Tags: Functions interfaces mechanisms subclasses programs examples forms knowledge polymorphism examples content at the same time articles questions proprietary design discomfort disorder superfluous value Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Apple vpn MySQL Shulou Technology Docker