Dragon_Y 发表于 2015-3-13 09:37:49

C++ 中关于继承的问题


从AcctABC抽象类中派生出Brass 和 BrassPlus 两个具体类,在定义BrassPlus的成员函数时,要调用Brass类中的函数,调用的方法,是不是一定要通过Brass类的对象调用,而不能用Brass::Withdraw() 这种形式调用, 是不是如果这两个具体类是继承关系,就可以用这种形式了???不知我的理解的对不对,求大神指教代码附下

void BrassPlus::ViewAcc () const
{
        using std::cout;
        using std::endl;

//        Brass::ViewAcc();                               // 注意!!! 不能这样用,用下三行代码实现
                                                             // 当两类是继承关系时,这样可以,其他情况下都要用对象调用函数
        cout << "账户使用者: " << Name () << endl;
        cout << "账号: " << AccNum () << endl;
        cout << "账户余额: " << Balance() << endl;       

        cout << "最大贷款金额: " << maxloan << endl;
        cout << "贷款利息: " << rate << endl;
        cout << "所欠金额: " << owebank << endl;
}



Dragon_Y 发表于 2015-3-13 18:24:00

没有哪位朋友知道吗?帮自己顶一下

xiangh105 发表于 2015-3-13 18:51:33

静态函数就可以用你后面的那种方式调用

Dragon_Y 发表于 2015-3-13 19:04:04

xiangh105 发表于 2015-3-13 18:51
静态函数就可以用你后面的那种方式调用

谢谢那如果两个类不是继承关系的,其中一个类成员函数中调用另一个类成员函数,是不能用Brass::Withdraw() 这种形式 ?只有继承才行的????

Dragon_Y 发表于 2015-3-13 19:56:51

问题终于解决了 是我理解错了 网上查了下
类中调用其他类成员函数方法:(1):用继承来实现
                                                 (2):用友元函数实现
                                                (3):在其他类中声明对象成员

如果两个类为继承关系,在一个类中可以直接调用另一个类成员函数,不用任何修饰,前提是这个成员函数为public属性;而我之前的说要加Brass::修饰Withdraw()函数,是因为这个函数在两个类中进行了重定义,所以用这个修饰来区别是用哪个函数:lol:
页: [1]
查看完整版本: C++ 中关于继承的问题