C++类和继承

#include

class A{
private:
int x;
public:
A(){}
A(int i){x=i;cout<<"this is A construction\n";}
~A(){cout<<"this is A destruction\n";}
void setvaluea(int i){x=i;}
void disp(){cout<<"x="<<x<<endl;}
};
class B:public A//公有继承
{
private:
int y;
public:
A::setvaluea;//恢复基类成员的访问权限
A::disp;
B(){}
B(int i):A(i+10){y=i;cout<<"this is B construction\n";}
~B(){cout<<"this is B destruction\n";}
void setvalueb(int i){y=i;};
void disp(){A::disp();cout<<"y="<<y<<endl;}//同名,重定义了基类的成员函数
};
int main()
{
//派生类对象能赋值给基类对象(需公有继承)
//基类指针指向一个派生类对象

//将派生类指针强制转换基类对象
B *b;
A a(3);
b=static_cast(&a);
b->disp();//可调用基类成员


return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值