有关C++继承的两个问题想请教大家
问题一:一个类的成员函数中能调用另一个类的公有成员函数吗?
比如:
class A
{
public:
f(x);
}
class B
{
public:
g(x);
}
A::f(x)
{
g(x);
} 程序写的不对,但是意思是这样子,不知道这样调用行不?????
问题二:“子类和父类在同一个包中时,子类可以继承父类的除private属性的所有方法和成员变量,当子类与父类不在同一个包中时,子类只能继承父类的protected和public属性的成员变量和方法。”这句话中“同一个包”是什么意思呀????另外它说的“除private属性”那不就是“protected和public属性”吗?这两种说法不就一个意思吗????
[解决办法]
1、你A没有继承B,所以不能调用B中的g
2、包是Java的概念,C++没有这一说法。
仅供参考:
class B
{
public:
void g(int x);//写的时候注意返回值类型,参数类型什么的
};//结尾;别忘了
class A : public B //继承B
{
public:
void f(int x);
};
void A::f(int x)
{
g(x);
}