HM102 默认权限
HM102 默认权限
来源: 第 102 集 类和对象-封装-c++中class和struct的区别
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
在 C++ 里,class 和 struct 都能用来写类,唯一区别是默认访问权限不同:
struct的默认权限是public(公共)class的默认权限是private(私有)
“默认”的意思是:成员前面什么权限都不写。类内访问不受这个差别影响——无论默认是公共还是私有,类内都能读写该成员。差别出现在类外:
- 用
class C1 { int mA; };实例化后,类外写c1.mA = 100非法。 - 用
struct C2 { int mA; };实例化后,类外写c2.mA = 100合法。
请同时实现默认权限的 class C1 与 struct C2(都只含一个未写权限的整数成员 mA)。处理 \(q\) 次实验:
1 v:试图从类外给C1::mA赋 \(v\),输出DENIED2 v:从类外给C2::mA赋 \(v\),输出PUBLIC v3 v:在C1的成员函数里给mA赋 \(v\),再读出来,输出INNER v4 v:在C2的成员函数里给mA赋 \(v\),再读出来,输出INNER v
输入格式
第一行一个整数 \(q\)(\(1 \le q \le 1000\))。
接下来 \(q\) 行,每行两个整数 \(t\)、\(v\)(\(t \in \{1,2,3,4\}\),\(|v| \le 10^9\))。
输出格式
每行一次实验结果,行末换行。
样例
输入 #1
4
1 100
2 100
3 50
4 50
输出 #1
DENIED
PUBLIC 100
INNER 50
INNER 50
输入 #2
2
2 0
1 -1
输出 #2
PUBLIC 0
DENIED
说明
class/struct都能表示类,不要以为只有class才能写类。- 类内访问两种写法都能成功;类外只有
struct的默认成员能直接点出来。 - 必须真正定义
class C1与struct C2,其中默认成员前面不要写public/private。
信息
- ID
- 1101
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者