Home Backend Development C#.Net Tutorial What is a virtual function

What is a virtual function

May 05, 2019 pm 04:54 PM
virtual function

Virtual function refers to: a member function declared as virtual in a base class and redefined in one or more derived classes, that is, a member function modified by the virtual keyword; the format is "virtual function" Return type function name (parameter list) {function body}".

What is a virtual function

A member function declared as virtual in a base class and redefined in one or more derived classes, the usage format is: virtual Function return type Function name (parameter list) {Function body}; To achieve polymorphism, access the overriding member function of the same name in the derived class through the base class pointer or reference pointing to the derived class.

Simply put, those member functions modified by the virtual keyword are virtual functions.

First of all: emphasize the concept that defining a function as a virtual function does not mean that the function is an unimplemented function. It is defined as a virtual function to allow the function of the subclass to be called using a pointer of the base class. Defining a function as a pure virtual function means that the function is not implemented. The purpose of defining a pure virtual function is to implement an interface and serve as a specification. Programmers who inherit this class must implement this function.

Example:

class A
{
public:
virtual void foo()
{
cout<<"A::foo() is called"<<endl;
}
};
class B:public A
{
public:
void foo()
{
cout<<"B::foo() is called"<<endl;
}
};
int main(void)
{
A *a = new B();
a->foo(); // 在这里,a虽然是指向A的指针,但是被调用的函数(foo)却是B的!
return 0;
}
Copy after login

This example is a typical application of virtual functions. Through this example, you may have some concepts about virtual functions. It is based on the so-called "deferred binding" or "dynamic binding". The call of a class function is not determined at compile time, but at run time. Since it is not possible to determine whether the function being called is a function of the base class or a derived class when writing the code, it is called a "virtual" function. Virtual functions can only achieve polymorphic effects with the help of pointers or references.

The above is the detailed content of What is a virtual function. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Detailed explanation of C++ function debugging: How to debug problems in virtual functions? Detailed explanation of C++ function debugging: How to debug problems in virtual functions? May 02, 2024 pm 03:42 PM

Virtual function debugging methods: set breakpoints to step through; use assert() to verify conditions; use debugger tools to check dynamic types, function stacks and redefine virtual functions.

How do C++ function overloading and virtual functions work together? How do C++ function overloading and virtual functions work together? Apr 26, 2024 am 10:09 AM

Function overloading in C++ allows defining different implementations for functions of the same name with different parameters, while virtual functions allow overriding base class functions in derived classes to achieve polymorphism. Function overloading and virtual functions can work together. By designing a virtual overloaded function in the base class, the derived class can only overload versions of specific parameter combinations, thereby providing more flexible polymorphism, such as calculating different types in practical cases The distance of the shape from its origin.

Interaction between C++ friend functions and virtual functions Interaction between C++ friend functions and virtual functions Apr 16, 2024 pm 03:45 PM

In C++, friend functions interact with virtual functions so that the friend function can access the virtual function and call the friend function in the derived class to access the private members of the base class. This interaction can be used to access data hidden in the inheritance hierarchy or to implement polymorphic behavior.

How to declare and call virtual functions in C++? How to declare and call virtual functions in C++? Apr 12, 2024 pm 04:03 PM

A virtual function is a polymorphism mechanism that allows a derived class to override the member functions of its base class: Declaration: Add the keyword virtual before the function name. Call: Using a base class pointer or reference, the compiler will dynamically bind to the appropriate implementation of the derived class. Practical case: By defining the base class Shape and its derived classes Rectangle and Circle, it demonstrates the application of virtual functions in polymorphism, calculating area and drawing shapes.

Can a C++ function be declared virtual? What is the role of virtual functions? Can a C++ function be declared virtual? What is the role of virtual functions? Apr 19, 2024 pm 06:06 PM

Virtual functions in C++ allow derived classes to redefine methods inherited from base classes to achieve polymorphism. The syntax is: declare a virtual function with the virtual keyword in the base class, and redefine it with override in the derived class. By calling a virtual function through a pointer or reference, a derived class object can call a base class virtual function. The main functions of virtual functions include: realizing polymorphism, supporting dynamic binding and providing abstraction.

The secret of C++ virtual functions revealed The secret of C++ virtual functions revealed Apr 19, 2024 am 09:18 AM

Virtual functions use dynamic binding to determine the function to be called at runtime, achieving polymorphism. Its advantages include scalability and reusability, but it also introduces overhead and complexity. Virtual functions are often used to implement methods of different types of objects in a uniform way.

Application skills of virtual functions and pure virtual functions in C++ Application skills of virtual functions and pure virtual functions in C++ Aug 22, 2023 am 11:33 AM

Virtual functions and pure virtual functions in C++ are commonly used tools by many programmers who use object-oriented programming. Under the premise of using them correctly, the flexibility and maintainability of the program can be greatly improved. This article will discuss the application skills of virtual functions and pure virtual functions, and share some practical development experiences. 1. Virtual function 1. What is a virtual function? Virtual functions are a technique used to implement polymorphism, which allows the member functions of a class to be dynamically determined at runtime. When a virtual function is called using a base class pointer or reference, the program will

C++ syntax error: Class template member function cannot be a virtual function, what should I do? C++ syntax error: Class template member function cannot be a virtual function, what should I do? Aug 22, 2023 am 10:09 AM

C++ is a widely used programming language. As a strongly typed, general-purpose, object-oriented programming language, it is efficient, stable, and scalable. In the C++ programming process, using classes and templates can help us implement our code logic quickly and effectively. However, some problems may be encountered in the actual process, such as the problem that class template member functions cannot be virtual functions. This situation usually occurs when using template classes. We define a template class and define some virtual functions in it, but the compiler reports

See all articles