码迷,mamicode.com
首页 > 编程语言 > 详细

关于C++类成员访问权限的理解

时间:2016-02-22 22:13:36      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:

这是我的第一篇博客耶,翻书的时候想到关于类和对象的几个疑惑,记一记吧。

 

一直的一个问题就是,为什么要提供访问限制?上网查了一些资料,感觉private主要是一种思想的体现。足够小心谨慎是可以全部public的。

访问权限强调了面向对象的封装思想,拒绝权限外的访问,增强了代码的可维护性,不会别人随便改啊改,修改了暴露的不该动的东西。

 

怎么算是类内外的访问??在外面访问成员方法还可以理解,怎么访问变量?(哦原来就是下面的printf那句)

 

一个成员的访问权限怎么体现呢?

一个成员变量,怎么算是私有的访问??

class CUser {
private:
    char m_PassWord[16];
};
     CUser user;
printf(
"%s", user.m_PassWord);//非法的访问

class CUser {
private:
    char m_PassWord[16];
public:
    void ChangePassWord(char* newPassWord) {
        if (newPassWord != NULL) {
            strcpy(m_PassWord, newPassWord);//合法的访问
        }
    }
};

私有成员变量将本类之外的一些牛鬼蛇神拒之门外。

同样,对于私有成员方法,来自外部的调用是不合法的。

class CUser {
private:
    char m_PassWord[16];
    char* GetPassWord() {
        return m_PassWord;
    }
};
    CUser user;
    printf("%s",user.GetPassWord());//非法的访问

但是它可以作为一个public函数的调用:

class CUser {
private:
    char m_PassWord[16];
    char* GetPassWord() {
        return m_PassWord;
    }
public:
    void PrintPassWord() {
        printf("%s", GetPassWord());//合法的访问
    }
};

 我会加油写出更厉害的博客的!

关于C++类成员访问权限的理解

标签:

原文地址:http://www.cnblogs.com/jily/p/5208298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!