A derived class member function may have names that differ from base class function names. This is because the derived class can override the base class function. When a derived class overrides a base class function, the derived class function has the same name as the base class function, but it has a different signature. The signature of a function is the combination of its name, its parameter list, and its return type.
For example, the following code shows a class named Base with a member function named
The following code shows a class named Derived that inherits from Base. The Derived class has a member function named f() that overrides the Base class’s f() function:
class Derived : public Base {
public:
void f() {
std::cout << "Derived::f()\n";
}
};
When you call the f() function on an object of type Derived, the Derived class’s f() function is called, not the Base class’s f() function.
Here is a brief explanation of each option:
A. may. A derived class member function may have names that differ from base class function names. This is because the derived class can override the base class function.
B. may if the two classes have the same name. This option is incorrect because the derived class’s member function name does not have to be the same as the base class’s member function name even if the two classes have the same name.
C. must. This option is incorrect because the derived class’s member function name does not have to be the same as the base class’s member function name.
D. must not. This option is incorrect because the derived class’s member function name can be the same as the base class’s member function name.