zoukankan      html  css  js  c++  java
  • 访问权限案例说明

    #include <iostream>
    #include <string>
    using namespace std;
    class Item_base 
    {
        public:
            Item_base(const string &book = "", double sales_price = 0.0):
                isbn(book), price(sales_price) {}
            string book() const 
            { 
                return isbn;
            }
            virtual double net_price(size_t n) const
            {
                return n * price;
            }
        private:
            string isbn;
        protected:
            double price;
    };
    class Bulk_item : public Item_base
    {
        public:
            Bulk_item(void) : Item_base("math", 3.4) {}; 
            double net_price(size_t) const;
            void print() { cout << "hello:" << price << endl; }
            void memfcn(const Bulk_item &d, const Item_base &b);
        private:
            size_t min_qty;
            double discount;
    };
    double Bulk_item::net_price(size_t cnt) const
    {
        if (cnt >= min_qty)
            return cnt * price * (1-discount);
        else
            return cnt * price;
    }
    void Bulk_item::memfcn(const Bulk_item &d, const Item_base &b)
    {
        double ret;
        ret = d.price;
    //  ret = b.price;   见解析3
        cout << ret << endl;
    }
    
    int main()
    {
        Item_base base("English", 1);
        Bulk_item b;
        b.memfcn(b, base);
    }

    public继承

    • 类的私有成员只能通过类的成员访问,类的对象、派生类、派生类对象都是不行的
    • 类的保护成员对于基类来说如同private一样(见上条),对于派生类来说像public一样可以通过派生类访问,但是不可以通过类的派生类对象访问
    • 派生类(不是对象)只能通过派生类对象访问基类的protected成员,而不可以通过基类的对象访问(上例中类中只能通过对象d访问price,而不可以通过b)
  • 相关阅读:
    Java变量的作用域
    Java访问修饰符(访问控制符)
    Java类的定义及其实例化
    强调一下编程风格
    Java StringBuffer与StringBuider
    Java字符串(String)
    windows eclipse安装lombok插件
    mac 下eclipse安装lombok插件
    【四】Ribbon负载均衡
    【三】Eureka服务注册与发现
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/3266399.html
Copyright © 2011-2022 走看看