C++ 权限控制

1.将定义与实现区分开

为了函数的可读性更强,代码看起来简洁明了,我们可以再创建一个新的class,右键新建,

我们可以将函数的声明放在MyClass.h中(注意:在函数的定义时,要在函数名前面加上类名::函数名)

将函数的定义放在MyClass.cpp中

2.public和private的使用

假设在如下情景中,如果我们在创建Base时考虑到了后续的使用,在创建时使用了public就可以避免这样的事情发生

定义:

1.public:表示这个成员哪里都可以使用,不用担心被修改,所以,一旦发布public的成员,是不可以改名的。

2.private:这个成员只可以内部使用,编译器进制除了该成员的内部外只用(学逆向的我们可以通过指针的方法访问)

测试结论:

1.被private修饰的,依旧存在在结构体中,宽度不变。

2.public/private可以修饰函数也可以修饰变量。

3.private真的不可以访问吗

通过前面的测试我们已经知道了经过private修饰的变量或者函数,编译器是不让我们在外部使用的,但是如果我们得到了该类的指针地址,就可以访问。

如图,当public存在调用函数时,我们可以获取对象的指针地址,从而访问private中的值。(只要类中public函数调用,就会传递类的指针)

4.class和struct的区别

1.权限的区别

我们创建一个struct结构体时,我们可以随意访问或者修改,初始化成员变量或者调用函数。

但是改为class后,就不能访问或者修改,初始化成员变量或者调用函数。

因此我们得出结论:

struct和class的区别在于权限的不同

2.继承中的区别

当两个class中存在继承关系时,如果不想因为继承而去修改class的私有属性,那么久需要在继承时添加

注意:

1.在两个class中要加上public,否则在继承时加上public也无法访问

2.

5.private是否被继承

通过观察我们发现,父类当中有public修饰又有private修饰,此时我们分别计算继承前后Student的宽度,可以发现继承后private修饰的变量也算入内存中,因此我们可以得出结论:

1.父类中的私有成员是可以被继承的

2.只是这些私有成员编译器不允许我们访问

3.我们可以通过获取指针地址的方式访问

6.作业

将昨天的作业全部改为class

1.实现声明与定义分开

2.添加public和private实现权限控制

Myclass.h

Myclass.cpp

test.cpp

注意:

在使用对象时要搞清楚子类父类,容易在使用时拿着父类的对象去访问。

在class继承时注意加上:public。

在函数定义时记得是::两个冒号。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值