读书人

protected访问标号的一个生疏

发布时间: 2012-08-11 20:50:31 作者: rapoo

protected访问标号的一个生僻

《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:

#include "Bulk_item.h"#include <iostream>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){    cout << "Bulk_item m_dPrice" << d.m_dPrice << endl;    cout << "Item_base m_dPrice" << b.m_dPrice << endl; //这行导致编译失败,没有访问权限    cout << "m_dPrice" << m_dPrice << endl;}


读书人网 >编程

热点推荐