C++02.访问控制
1.class是struct的扩展,它包括数据成员和成员函数。
2.在C++中,有三种访问权限:
(1)private:默认,只供类内部的函数使用。
(2)public:类外的程序可以使用。
(3)proteted
注意:
C++的规范,类名称的首字母应该大写。
eg:
#include <stdio.h> class Person{ private: //private只供类内部的函数使用,改为public程序可以正确输出结果。 char *name; int age; char *work; void printfInfo(void) { printf("name=%s,age=%d,work=%s\n",name,age,work); } }; int main(int argc,char **argv) { Person per; per.name="zhangsan"; per.age=; per.work="teacher"; per.printfInfo(); ; }
出现错误:
3.通过函数来访问class中的私有变量。
eg:
#include <stdio.h> class Person{ private: //private只供类内部的函数使用 char *name; int age; char *work; public: void setName(char *n,int a,char *w){ name=n; age=a; work=w; } void printfInfo(void) { printf("name=%s,age=%d,work=%s\n",name,age,work); } }; int main(int argc,char **argv) { Person per; // per.name="zhangsan"; // per.age=20; // per.work="teacher"; per.setName(,"teacher"); per.printfInfo(); ; }
4.为什么要把变量设置为private?
因为如果是public,在外部的函数,比如main函数可以随意地设置它的值,即使是不合理的值。这显然不是一个好的现象,为了避免用户做出的错误的设置,应该把class的变量设置为私有的,在提供函数来设置这些变量。
eg:
#include <stdio.h> class Person{ private: //private只供类内部的函数使用 char *name; int age; char *work; public: void setName(char *n,int a,char *w){ name=n; work=w; age=a; ||a>){ age=; } } void printfInfo(void) { printf("name=%s,age=%d,work=%s\n",name,age,work); } }; int main(int argc,char **argv) { Person per; // per.name="zhangsan"; // per.age=20; // per.work="teacher"; per.setName(,"teacher"); per.printfInfo(); ; }
结果:
改变第30行的参数“20”改为“200”
结果如下:
注意:age的值为0,是因为13行的判断语句起的作用。
5.Person per;
我们已经将Person定义为一个class类,那么成per是Person这个类的一个对象。
6.C++中的this指针,指向当前对象。
eg:
#include <stdio.h> class Person{ private: //private只供类内部的函数使用 char *name; int age; char *work; public: void setName(char *name,int age,char *work){ this->name=name; //这里的name,age,work代表的是setName函数传递进来的参数,而不是class中的变量,因为在c语言和C++中的就近原则。 this->work=work; this->age=age; ||age>){ ; } } void printfInfo(void) { printf("name=%s,age=%d,work=%s\n",name,age,work); } }; int main(int argc,char **argv) { Person per; // per.name="zhangsan"; // per.age=20; // per.work="teacher"; per.setName(,"teacher"); per.printfInfo(); ; }
C++02.访问控制的更多相关文章
- ssh访问控制,多次失败登录即封掉IP,防止暴力破解
ssh访问控制,多次失败登录即封掉IP,防止暴力破解 一.系统:Centos6.3 64位 二.方法:读取/var/log/secure,查找关键字 Failed,例如(注:文中的IP地址特意做了删减 ...
- C# 访问控制:public、private、protected和internal
平日工作时最常用的访问控制符是public和private,当看到prism里面大量使用protected的时候,觉得还是不太理解为啥. 所以就静下心来查找并理解了一下,这里记录下,以便回顾和交流. ...
- 教程:基于访问控制的ABAP CDS视图权限
Hi! 对每一个CDS视图,我们都可以通过DCL(Data Control Language)定义访问控制.在这篇文章中,我会介绍ABAP CDS视图中非常重要的一面:权限管理. 本文的阐述基于我正在 ...
- Hbase学习02
第2章 Apache HBase配置 本章在“入门”一章中进行了扩展,以进一步解释Apache HBase的配置. 请仔细阅读本章,特别是基本先决条件,确保您的HBase测试和部署顺利进行,并防止数据 ...
- 文件访问控制列表facl
[root@bogon code]# getfacl a.c //获取文件a.c的文件访问控制列表 # file: a.c # owner: root # group: root user::rw- ...
- Linux 系统访问控制列表ACL
常见的文件系统的一般权限(rwx).特殊权限(SUID,SGID,STICK).隐藏权限(chattr)其实有个共性——权限是针对某一类用户设置的.而如果希望对某个指定的用户进行单独的权限控制,那么就 ...
- 03IO端口寻址和访问控制方式
1. I/O端口和寻址 CPU 为了访问 I/O 接口控制器或者控制卡上的数据和状态信息,需要首先指定他们的地址.这种地址就称为I/O端口地址或简称端口.通常一个 I/O 控制器包含访问数据的数据端口 ...
- Kong Gateway - 11 基于网关服务的ACL访问控制列表 黑名单
Kong Gateway - 11 基于网关服务的ACL访问控制列表 黑名单 同一服务名称 book 不允许即创建白名单访问控制列表又创建黑名单访问控制列表 启用服务的白名单&黑名单配置文件时 ...
- 负载均衡服务之HAProxy https配置、四层负载均衡以及访问控制
前文我们聊了下haproxy的访问控制ACL的配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12817773.html:今天我们来聊一聊haproxy的h ...
随机推荐
- Git快速入门
如果你不想看长篇的Git教程,想快速了解Git的使用,那么本文可能会对你入门Git有所帮助.由于笔者用的是Windows系统,所以本文只写Git在Windows上的使用. 一.Git安装 去Git官网 ...
- SQL面试笔试经典题(Part 1)
本文是在Cat Qi的原贴的基础之上,经本人逐题分别在MySql数据库中实现的笔记,持续更新... 参考原贴:http://www.cnblogs.com/qixuejia/p/3637735.htm ...
- Linux网络驱动--snull
snull是<Linux Device Drivers>中的一个网络驱动的例子.这里引用这个例子学习Linux网络驱动. 因为snull的源码,网上已经更新到适合最新内核,而我自己用的还是 ...
- Spring MVC注解开发入门
注解式开发初步 常用的两个注解: @Controller:是SpringMVC中最常用的注解,它可以帮助定义当前类为一个Spring管理的bean,同时指定该类是一个控制器,可以用来接受请求.标识当前 ...
- Linux 安装Mono环境 运行ASP.NET(一)
1.先看一下Linux环境下面请求的过程,(画的不是很好,简单的了解一下原理.) .NET跨平台其实需要这三个关键:编译器.CLR和基础类库.在.NET下我们编写一个最简单的"Hello W ...
- Membership三步曲之入门篇 - Membership基础示例
Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 - Membership基础示例 Membership三步曲之进阶篇 - 深入剖析Pro ...
- WPF自定义控件第二 - 转盘按钮控件
继之前那个控件,又做了一个原理差不多的控件.这个控件主要模仿百度贴吧WP版帖子浏览界面左下角那个弹出的按钮盘.希望对大家有帮助. 这个控件和之前的也差不多,为了不让大家白看,文章最后发干货. 由于这个 ...
- 作为前端应当了解的Web缓存知识
缓存优点 通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备.对于前端开发者来说,浏览器充当了重要角色.除此外常见的还有各种各样的代理服务器也可以做缓存.当Web请求到达缓存时, ...
- 【完全开源】知乎日报UWP版(上篇):界面设计、官方API分析
目录 说明 使用Fiddler分析android版API 部分效果图 关于源码 说明 在做博客园UWP版的时候其实就有做知乎日报的打算了,前段时间一直出差,在酒店里用Fiddler简单的分析了一下An ...
- ADO.NET Entity Framework 在哪些场景下使用?
在知乎回答了下,顺手转回来. Enity Framework已经是.NET下最主要的ORM了.而ORM从一个Mapping的概念开始,到现在已经得到了一定的升华,特别是EF等对ORM框架面向对象能力的 ...