高手进,怎样访问基类的私有函数。
很迷惑,怎样访问基类的私有函数,很迷惑。
这个用虚函数,但是但是。。。。。。。没头绪啊
请高手指点
[解决办法]
声明一个和要访问函数一致的函数指针,然后计算获取对象的虚函数表地址,强转之,理论如此
要是自己写的类就更容易了,像楼上说的,改成公共的,或者声明接口
[解决办法]
有这个纠结吗。这不就是一个C++多态性的一个例子吗。
基类中,将数据私有化,然后,只能用一个公有成员去访问。
派生出一个子类,虚有化。
最后由对象去调用基类的公有成员,不就可以控制私有数据了吗。
[解决办法]
#include <iostream> using namespace std; class A { public: virtual void f(){cout<<"A"<<endl;} }; class B:public A { private: void f(){cout<<"B"<<endl;} }; int main() { A* pA = new B(); pA->f(); //B return 0; }
[解决办法]
不要去访问基类的私有函数
这是禁止的,通过个别的技巧实现了访问也是违反设计原则的
如果必要要这么做,就修改基类好了
1,更改希望访问函数的属性(public,protected,private)
2,在基类中新加个可以访问的函数包装原来的私有函数,通过包装函数来访问私有函数