文档章节

C++访问控制

c
 cold19
发布于 2017/09/06 00:27
字数 284
阅读 5
收藏 1

C++ class是对struct的扩展,含有数据成员和成员函数
c++ 三种访问控制权限
private:只供内部函数使用
public:类外部程序可以使用
protected:当前类和子类可以使用
C++规范,类的首字母大写

设置成private原因,把数据成员屏蔽起来,对外提供封装函数。
例子:
 

class Person {
private:
        char *name;
        int age;
        char *work;

public:
        void setName(char *n)
        {
                name = n;
        }
        int setAge(int a)
        {
                if (a < 0 || a > 150)
                {
                        age = 0;
                        return -1;
                }
                age = a;
                return 0;
        }
        void printInfo(void)
        {
                printf("name = %s, age = %d, work = %s\n", name, age, work);
        }
};

int main(int argc, char **argv)
{
        Person per;

        //per.name = "zhangsan";
        per.setName("zhangsan");
        per.setAge(200);
        per.printInfo();

        return 0;
}

c++类隐含了一个this指针,指向当前对象。
c++参数的就近原则:如果同一个类和代码块还有同名的变量,则使用的是最近的那个参数。
例子:
 

class Person {
private:
        char *name;
        int age;
        char *work;

public:
        void setName(char *name)
        {
                this->name = name;
        }
        int setAge(int age)
        {
                if (age < 0 || age > 150)
                {
                        this->age = 0;
                        return -1;
                }
                this->age = age;
                return 0;
        }
        void printInfo(void)
        {
                printf("name = %s, age = %d, work = %s\n", name, age, work);
        }
};

int main(int argc, char **argv)
{
        Person per;

        //per.name = "zhangsan";
        per.setName("zhangsan");
        per.setAge(200);
        per.printInfo();

        return 0;
}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: C++程序结构
下一篇: c++类的引入
c
粉丝 0
博文 6
码字总数 4103
作品 0
广州
私信 提问
《鸡啄米C++编程入门系列》系列技术文章整理收藏

《鸡啄米C++编程入门系列》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201812.html 文章 鸡啄米:C++编程入门系列之前言 鸡啄米:C++编程入门系列之一(进制...

开元中国2015
2015/06/27
0
0
开发者应该开始学习 C++ 吗?

随着C++ 11和C++ CX的引入,很多人重新燃起了对这门语言的兴趣。不少开发者,尤其是Windows开发者,都想知道是否应该放弃C#和Java,转而支持C++。John Sonmez认为这并不需要。 在“为什么C++...

戴威
2012/12/26
8.6K
44
C++零基础教程之类和对象初识

C++ 类和对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理...

这个人很懒什么都没留下
09/03
0
0
c语言基础学习11_项目实战:IDE(集成开发环境)

============================================================================= ============================================================================= 涉及到的知识点有: 一......

黑泽明军
01/29
0
0
C++ 语言的 15 个晦涩特性

这个列表收集了 C++ 语言的一些晦涩(Obscure)特性,是我经年累月研究这门语言的各个方面收集起来的。C++非常庞大,我总是能学到一些新知识。即使你对C++已了如指掌,也希望你能从列表中学到...

oschina
2013/12/30
5.6K
22

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
10
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
16
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
10
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部