13个回答
展开全部
b B
B.a::a();
不知道为什么要这么做,子类覆盖了父类的方法后又要去调用他,完全没有实用的意义。上面的方法虽然可以,但是确破坏了封装。
补充两句,上面的程序错误太多了,类的成员是不能直接做初始化操作的,类结束没有给分号,与类名同名的函数为构造函数,不可以携带类型做声明等等,问题很多啊。
B.a::a();
不知道为什么要这么做,子类覆盖了父类的方法后又要去调用他,完全没有实用的意义。上面的方法虽然可以,但是确破坏了封装。
补充两句,上面的程序错误太多了,类的成员是不能直接做初始化操作的,类结束没有给分号,与类名同名的函数为构造函数,不可以携带类型做声明等等,问题很多啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单啊,直接像静态方法那样调用就好了。因为子类本来就对父类的函数可见,构造函数和析构函数一样可以被显示调用。
class A
{
public:
A()
{
printf("aaaa\n");
}
~A()
{
printf("~~~~~aa\n");
}
};
class B : public A
{
public:
B()
{
A::A();
printf("bbbb\n");
}
~B()
{
A::~A();
printf("~~~~bbb\n");
}
};
void main(void)
{
B ccc;
}
class A
{
public:
A()
{
printf("aaaa\n");
}
~A()
{
printf("~~~~~aa\n");
}
};
class B : public A
{
public:
B()
{
A::A();
printf("bbbb\n");
}
~B()
{
A::~A();
printf("~~~~bbb\n");
}
};
void main(void)
{
B ccc;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就父类的名字加域操作符加方法名
BASE::fun();
BASE::fun();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用父类的作用域来调用同名方法。比如:
class Base
{
public:
void Show()
{
cout << "Base:Show!" << endl;
}
}
class Child : public Base
{
public:
void Show()
{
cout << "Child:Show!" << endl;
//调用父类同名方法
Base::Show();
}
}
class Base
{
public:
void Show()
{
cout << "Base:Show!" << endl;
}
}
class Child : public Base
{
public:
void Show()
{
cout << "Child:Show!" << endl;
//调用父类同名方法
Base::Show();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询