关于C++类成员访问权限的理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C++类成员访问权限的理解相关的知识,希望对你有一定的参考价值。
这是我的第一篇博客耶,翻书的时候想到关于类和对象的几个疑惑,记一记吧。
一直的一个问题就是,为什么要提供访问限制?上网查了一些资料,感觉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++类成员访问权限的理解的主要内容,如果未能解决你的问题,请参考以下文章
C++ 中对于访问权限publicprivateprotected的理解