基类对象可以访问派生类的成员
⑴ c#中基类如何访问派生类的对象
将派生类在父类里面声明为友元类就可以访问
否则无法访问
可参考以下代码
// 以下代码在VC2008下测试通过
#include <iostream>
using namespace std;
class TT;
class Base
{
public:
Base(int d) : data(d)
{
}
private:
int data;
friend class TT;
};
class TT : public Base
{
public:
TT(int d) : Base(d)
{
}
int getData() const { return data; }
};
void main(void)
{
TT t(3);
cout << t.getData() << endl;
cin.get();
}
⑵ c++里基类的指针, 能访问派生类的成员变量吗
360问答
指向派生类的基类指针可不可以调用派生类成员函数?
军8786050 LV12
2017-01-18
如果可以,怎么访问,如果不可以有什么解决办法?
满意答案
liqi26zc
LV6
2017-01-19
可以,只要那个派生类成员函数是基类的成员函数的一个重写版本
以C++为例,假如有
class Runnable {
virtual void run();
};
class myclass : Runnable {
virtual void run() { throw runtime_error("unimplemented"); }
};
并且有
myclass o;
Runnable* p = &o;
那么 p->run() 就调用了派生类的 run 函数
⑶ 派生类的成员函数可以直接访问基类的 成员,不能直接访问基类的 成员
protect
保护成员在派生类中会变成
私有成员,派生类的成员函数是可以访问的。
private
私有成员在派生类中是不可访问成员,必须通过基类的成员函数访问