c++继承父类的子类,如何调用父类的同名函数?
我是初学者所以给点注释比较好classa{public:intx;voida(){cin>>x;};}classb::publica{public:inty=1;void...
我是初学者
所以给点注释比较好
class a
{
public:
int x;
void a(){cin>>x;};
}
class b::public a
{
public:
int y=1;
void a(){cout<<y;}
} 展开
所以给点注释比较好
class a
{
public:
int x;
void a(){cin>>x;};
}
class b::public a
{
public:
int y=1;
void a(){cout<<y;}
} 展开
3个回答
展开全部
子类调用父类的同名函数:
子类和父类返回值参数相同,函数名相同,有virtual关键字,则由对象的类型决定调用哪个函数。
子类和父类只要函数名相同,没有virtual关键字,则子类的对象没有办法调用到父类的同名函数,父类的同名函数被隐藏了,也可以强制调用父类的同名函数class::funtion_name。
子类和父类参数不同,函数名相同,有virtual关键字,则不存在多态性,子类的对象没有办法调用到父类的同名函数,父类的同名函数被隐藏了,也可以强制调用父类的同名函数class::funtion_name。
子类和父类返回值不同,参数相同,函数名相同,有virtual关键字,则编译出错error C2555编译器不允许函数名参数相同返回值不同的函数重载。
展开全部
b B
B.a::a();
不知道为什么要这么做,子类覆盖了父类的方法后又要去调用他,完全没有实用的意义。上面的方法虽然可以,但是确破坏了封装。
补充两句,上面的程序错误太多了,类的成员是不能直接做初始化操作的,类结束没有给分号,与类名同名的函数为构造函数,不可以携带类型做声明等等,问题很多啊。
B.a::a();
不知道为什么要这么做,子类覆盖了父类的方法后又要去调用他,完全没有实用的意义。上面的方法虽然可以,但是确破坏了封装。
补充两句,上面的程序错误太多了,类的成员是不能直接做初始化操作的,类结束没有给分号,与类名同名的函数为构造函数,不可以携带类型做声明等等,问题很多啊。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a A;//申明父类的对象
A.a();//调用
A.a();//调用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询