Files
2025-10-25 03:02:53 +03:00

1.2 KiB
Raw Permalink Blame History

[class.access.virt]

11 Classes [class]

11.8 Member access control [class.access]

11.8.6 Access to virtual functions [class.access.virt]

1

#

The access rules ([class.access]) for a virtual function are determined by its declaration and are not affected by the rules for a function that later overrides it.

[Example 1: class B {public:virtual int f();};

class D : public B {private:int f();};

void f() { D d; B* pb = &d; D* pd = &d;

pb->f(); // OK, B::f() is public, D::f() is invoked pd->f(); // error: D::f() is private} — end example]

2

#

Access is checked at the call point using the type of the expression used to denote the object for which the member function is called (B* in the example above).

The access of the member function in the class in which it was defined (D in the example above) is in general not known.