C++通过基类的函数调用子类的私有的函数

#include <iostream>

class Ca {
public:
	virtual void print() {
		std::cout << "Ca::print" <<std::endl;
	}

	void print2() { print(); }
		
};

class Cb :public Ca {

private:
	void print() {
		std::cout << "Cb::print" << std::endl;
	}

};

//virtual 即使是private修饰符,依然可以通过基类的函数调用
int main()
{
	Ca *p = new Cb;
	p->print2();
	
	std::cout << "Hello World!\n";
}
输出
Cb::print
Hello World!

利用动态绑定,即使是私有函数也可以通过基类的指针和引用调用

posted @ 2021-01-31 19:05  iwetuan  阅读(812)  评论(0)    收藏  举报