《c++ primer》15.2.2節中有這樣一段話:
派生類只能通過派生類物件訪問其基類的protected成員,派生類對其基類型別物件的protected成員沒有特殊許可權。
例子:item_base是bulk_item的基類,bulk_item定義了乙個成員方法,接受乙個bulk_item物件的引用,和乙個item_base型別物件的引用,該函式可以訪問自己物件的protected成員和bulk_item形參的protected成員,但是,它沒有item_base型別形參的protected成員的訪問許可權。
**驗證:
item_base.h:
#ifndef item_base_h_included
#define item_base_h_included
#include using std::string;
class item_base
;#endif // item_base_h_included
item_base.cpp:
#include "item_base.h"
item_base::item_base(const string & sisbn, double dprice)
:m_sisbn(sisbn), m_dprice(dprice)
item_base::~item_base()
string item_base::book() const
double item_base::net_price(unsigned unumber) const
bulk_item.h:
#ifndef bulk_item_h_included
#define bulk_item_h_included
#include "item_base.h"
class bulk_item : public item_base
;#endif // bulk_item_h_included
bulk_item.cpp:
#include "bulk_item.h"
#include using namespace std;
bulk_item::bulk_item(const string& sisbn, double price)
:item_base(sisbn, price)
void bulk_item::memfcn(const bulk_item & d, const item_base & b)
posted @
2012-07-14 21:59
夜塔 閱讀(
...)
編輯收藏
protected訪問標號的乙個生僻
c primer 15.2.2節中有這樣一段話 派生類只能通過派生類物件訪問其基類的protected成員,派生類對其基類型別物件的protected成員沒有特殊許可權。例子 item base是bulk item的基類,bulk item定義了乙個成員方法,接受乙個bulk item物件的引用,和...
C 訪問控制之protected
本文的前提是使用public繼承。protected是修飾類成員的乙個關鍵字。其作用是使protected類成員不能夠從類外部訪問,在基類中,其與private的成員可看作具有相同的訪問限制,即只能被該基類的成員函式訪問。而protected成員還有乙個特點就是,通過public繼承得到的子類,其成...
訪問修飾符protected
protected修飾符的確讓我有點困惑。例如 object的clone 方法就是protected修飾的。發現,有的時候可以訪問,但很多時候根本訪問不到。一 下面就以clone 方法為例 我在superclass類中,不重寫clone 只是訪問。如下 package cn public class...