参考:http://www.weixueyuan.net/view/6360.html
总结:
使用using声明可以改变基类成员在派生类中的访问属性。
private:
using book::setprice;
使用using声明可以改变基类成员在派生类中的访问属性。我们知道基类的公有成员经过公有继承,在派生类中其属性为public的,但是通过using 声明,我们可以将其改为private或protected属性。
例1:
enum language{cpp, java, python,javascript, php, ruby}; class book { public: void setprice(double a); double getprice()const; void settitle(char* a); char * gettitle()const; void display(); private: double price; char * title; }; class codingbook: public book { public : void setlang(language lang); language getlang(){return lang;} private: language lang; using book::setprice; };
通过例1这样的定义,则下面的主函数就会编译错误,在think类对象调用setlang和settitle函数时都不会有问题,因为这两个函数的属性为public,可以访问。唯独setprice函数通过using声明后,由public属性变为了private属性了。