訪问控制 protected, public, private 对照
OOP 3大特性:数据抽象,继承,动态绑定
{
private:
std::string isdn;
protected:
double price;
public:
std::string book() const { return isdn; }
};
class Bulk_item::public Item_book
{
...
};
void Bulk_item::memfcn(const Bulk_item &d, const Item_base &b)
{
cout<<isdn;// error: no access to isdn which is private member in Item_base (1)
double ret = price; //ok: use this->price (2)
ret = d.price;// ok: use price from a Bulk_item object (3)
ret = b.price; // error: no access to price from an Item_base (4)
}
using namespace std;
class Base
{
private:
int age;
protected:
int num;
public:
{
cout<<a.num<<endl;
}
virtual void show()
{
num ;
cout<<num<<endl;
}
};
class Devi : public Base
{
public:
void show()
{
num ;
cout<<num<<endl;
}
void test(const Base &a, const Devi &b)
{
cout<<b.num<<endl; //(5)
}
};
int main()
{
Base b, a;
Devi d;
b.show();
d.show(); //ok protected num可被子类使用
d.test(b, d);
//cout<<d.num; //error protected num 不可被子类 对象使用 (6)
;
}
{
public:
void basemen();
protected:
int i;
private:
std::string isdn;
....
};
class Public_derived: public Base
{
int use_base() { return i; } //ok: as proteced member in Public_derived
//...
};
class Private_derived: private Base //注意。对照以下
{
int use_base() {return i;} // ok: i is protected member in Base, private member in Pivate_derived
int print_isdn() {cout<<isdn; } //error: isdn is private member in Base
};
{
//error: Base::i is private in Private_derived
int use_base() {return i;}
};
class Derived_from_Private: public Public_derived
{
//ok: Base::i remain proteced in Public_derived
int use_base() {return i;}
}
Bulk_item bulk; //object of derived type
//ok:use Item_base::Item_base(const Item_base&) constructor
Item_base item(bulk); // bulk is "slice down" to its Item_base portion
//ok:use Item_base::operator = (const Item_base&)
item = bulk; // bulk is "slice down" to its Item_base portion
訪问控制 protected, public, private 对照的更多相关文章
- C++类訪问控制及继承
一.C++类的訪问控制有三类:public,protected和private. 类訪问控制符 类成员可被哪些对象訪问 public 1.类的成员函数.2.类对象.3.友元.4.子类成员函数 prot ...
- JAVA基础之訪问控制权限(封装)
包:库单元 1.当编写一个Java源码文件时.此文件通常被称为编译单元(有时也被称为转译单元). 2.每一个编译单元都必须有一个后缀名.java,而在编译单元内则能够有一个public类,该类名称必须 ...
- php訪问控制
訪问控制通过keywordpublic,protected和private来实现. 被定义为公有的类成员能够在不论什么地方被訪问.被定义为受保护的类成员则能够被其自身以及其子类和父类訪问.被定义为私有 ...
- 关于Apacheserver的訪问控制
Apache的訪问控制指对不论什么资源的不论什么方式的訪问控制. 一.基于主机或者IP地址的控制 这样的訪问控制基于訪问者的主机名或者IP地址,通过使用 Deny 和 Allow 指令.实现同意或者禁 ...
- Phalcon 訪问控制列表 ACL(Access Control Lists ACL)
Phalcon在权限方面通过 Phalcon\Acl 提供了一个轻量级的 ACL(訪问控制列表). Access Control Lists (ACL) 同意系统对用户的訪问权限进行控制,比方同意訪问 ...
- ORA-24247: 网络訪问被訪问控制列表 (ACL) 拒绝
ORA-24247: 网络訪问被訪问控制列表 (ACL) 拒绝 注意:须要在system用户下使用命令 须要先使用 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL 创建訪问控 ...
- C++ 訪问控制权限图解
基类訪问权限 类继承方式 子类訪问权限 public public protected public protected private No Access p ...
- C++_类继承4-访问控制protected
public和private来控制对类成员的访问. 还存在另外一个访问类别,这种类别用关键字protected表示.protected和private相似,在类外只能用公有类成员来访问protecte ...
- [Nginx]用Nginx实现与应用结合的訪问控制 - 防盗链
应用场景:图片等资源须要设置权限,如:仅仅有认证过的用户才干訪问自己的图片. 解决的方法:使用Nginx的防盗链模块http_secure_link能够实现,该模块默认情况下不包括.故在安装时要加上- ...
随机推荐
- 获取URL中的文件的扩展名
问题: 尽可能多地写出获取文件扩展名的方法: //方法一(分割数组) function getExt($url){ $arr = explode('.',$url); $len = count($ar ...
- python--enum
# enum用于枚举,该模块下有一个Enum,我们定义的类要继承它 # 一旦继承,那么我们定义的key(仮),不能有重复值. # 如果要保证value(仮)不重复,那就引入unique,给我们定义的类 ...
- Linux使用命令记录
1.对一个文件夹中所有的文件进行修改权限: • chmod –R 777 aa (- R 递归式改变指定目录及其所目录文件拥者) • 目录/his及其所文件目录,chown - R www.www / ...
- red-lang
Red is a next-generation programming language strongly inspired by Rebol, but with a broader field o ...
- 数据块dump详解及大小表扫描过程
http://blog.csdn.net/u013820054/article/details/40378233 http://blog.csdn.net/u013820054/article/cat ...
- iOS网络编程--ASIHTTPRequest框架安装和配置-图文解说
ASIHTTPRequest框架是优秀的第三方Objective-C的HTTP框架,支持Mac OS X和iOS下的HTTP开发.技术支持网站是http://allseeing-i.com/ASIHT ...
- kubernetes1.5.2集群部署过程--非安全模式
运行环境 宿主机:CentOS7 7.3.1611 关闭selinux etcd 3.1.9 flunnel 0.7.1 docker 1.12.6 kubernetes 1.5.2 安装软件 yum ...
- Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details.
在android上发布遇到 androidSDK无法找到的问题 http://www.jianshu.com/p/fe4c334ee9fe
- 面试题:如何在不使用临时变量temp的情况下交换两个整数的值?
利用一个小技巧,一个整数a在异或另一个整数b两次以后所得的值还是整数a. 具体的过程我们可以自己找两个整数以二进制的形式自己在纸上画一下他们的异或过程.(异或的运算符号为"^") ...
- BeagleBone Black板第四课:简单LED控制实验
BBB板第四课:简单LED控制实验 学习BBB板的终于目的是想像单片机一样做控制,但控制思路全然不一样(Linux下控制硬件设备实质就是对相关设备虚拟文件的读写).研究了几天头都大了还是没有进展,网上 ...