c++中,public 与 private有什么区别?什么时候用?与c语言中有何相似之处?求大神详解,通俗易懂

如题所述

public下面的是公有成员,对象外的所有程序都能访问这些成员,private下的是私有成员,只有对象内部可以访问。
以数组类为例,如果我们要自己设计一个数组类,提供插入Insert、删除Remove等操作。那么Insert和Remove作为这个类的函数就应该用public,否则使用这个数组类的程序就无法使用这些功能。在实现这个数组类的时候,我们需要用一个整型变量记录当前数组个数,我们不希望这个变量能被使用者随意修改,而是在使用Insert和Remove的时候才修改,那么就把这个变量放在private下面声明,这样使用这个数组类的程序就不能直接修改这个变量的值,防止这个类的数据发生错乱。
与C语言没有什么可比性,公有成员和私有成员是面向对象的程序设计语言才有的概念,而C语言是面向过程的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-03-17
c++是面向对象的过程的语言 而c语言面向过程的语言 所以c肯定没有诸如public和private这些关键字
public和private是公有和私有的意思 public就是所有函数都可以对其修饰的成员进行读写 而private只能是本对象的方法对其进行读写 public和private都是编译器的行为 当编译器检查到非本对象的方法访问私有成员就会报错 但是编译出的结果都差不多 public或private修饰同一变量都一样的 没有哪一个特殊 所以c++只在编译器层面控制对象 要学会用c的知识来解释c++的行为和实现
第2个回答  2015-03-17
被定义为private的成员函数不能被外部访问。通俗的来说,就是你包含这个头文件的.cpp文件和除了类定义域内里不能像这样访问该成员函数:
defined_class a; //defined_class是一个你定义的类名称
a.member_function(); //若成员函数member_funtion()为private,就不能在类的外部这样使用
//具有友元声明的类的内部除外
这种机制便能很好地实现封装
不明白接着问我~~~~追问

比如: 输入x y z 坐标,求这个三维点到原点距离。这个时候要定义x y z 还有函数,他们应该放在public还是private 里 如何决定放在哪?

追答

假设你的程序要对三维坐标进行处理的,那么最好把成员函数声明为公有,以便外部访问。而成员最好声明成私有。其实还主要看你的程序要干什么了,自己理解了封装的概念之后就可以自由发挥了~~~

不明白就继续问~~~~~

追问

哦,谢谢!

本回答被提问者采纳

c++中,public 与 private有什么区别?什么时候用?与c语言中有何相似之...
public下面的是公有成员,对象外的所有程序都能访问这些成员,private下的是私有成员,只有对象内部可以访问。以数组类为例,如果我们要自己设计一个数组类,提供插入Insert、删除Remove等操作。那么Insert和Remove作为这个类的函数就应该用public,否则使用这个数组类的程序就无法使用这些功能。在实现这个数组类...

在C++中,谁能解释一下private, public 还有 protected 的区别?
public:就是公有的,大家都可以用,继承给子类也可以用,反正都可以,换言之,父亲的公有财产儿子可以继承,大家也都可以利用 private:就是私有的,不能继承给子类,也就是说呢,父亲的私人物品是不会给儿子滴 protected:可以继承,但是别人不能用,也就是,父亲的财产儿子可以继承,但是别人就不能...

C++中 private和public的区别?
求C++类型别Class中public和private的区别 public 表示资料成员,成员函式可以被其它类或子类访问 private表示只有当前类内部可以访问 C++中public、private和protected访问属性的区别 在本类中,protected与private是相同的,但protected可以被继承,而private却不行。 只有公有成员才能在类的外部访问。如cl...

c++中的class是不是也有public,private和protected之分,各有什么...
C++中 public,protected, private 访问标号小结 第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访...

深入理解C++中public、protected及private用法
首先,理解封装是关键。public和private的作用是实现封装,public成员允许类外访问,而private成员只能被类内访问。private成员仅限于类成员和友元访问。其次,继承是C++中另一个重要概念,protected成员可以被派生类访问,但不能被类外访问。这意味着protected成员在继承时不会受到访问范围的影响,能够保持其在...

求高手帮助阐释一下c++中类 里面 public 和 private 的用法。也就是说...
private和public的作用是让编译器帮你检查某些模块是否使用了他没权限使用的模块,也就是生成可执行代码的时候做权限检查。比如,公司里各个部门有自己私有的信息,财务部可以看所有员工工资,而销售部不可以,普通员工也不可以。可不可以访问都是认为规定的,而且在写代码的时候程序是不会执行的,因此需要...

...直接用public不是很方便吗?用private有什么好处?
在运用这个数据成员运算的时候就会出错,而程序员假如没考虑异常情况就很难找出错误原因;还有一个例子,就是银行里你把卡借给别人去取钱,假如取款机里能显示你所以的个人信息,那你的个人信息安全就有威胁了,还是要把大部分信息封装起来,类之外都不能访问,只能通过程序员写的成员函数才能访问到,这样...

C++中public、private和protected访问属性的区别
在本类中,protected与private是相同的,但protected可以被继承,而private却不行。只有公有成员才能在类的外部访问。如class A{private:int a;public:int b;protected:int c;};A ca;ca.a \/\/errorca.b \/\/ okca.c \/\/errorcb.c \/\/error。虽然c也是B的成员,但c在被继承的时候...

C++中,基类中的private跟protected成员权限上有什么区别?
public成员可以在基类访问也可以在子类访问,还可以使用基类和子类的对象访问。protect成员可以在基类访问也可以在子类访问,不能使用对象访问。private成员只能在基类中访问,不能再子类访问,不能使用对象访问。以上基于public派生,否则基类的public成员在子类如果不再是public成员,则不能使用子类的对象访问。...

C++:private继承与public继承
公有继承(public):对象、类内函数、子类函数与友元函数都能访问。注意,友元包括三类:普通非成员函数、其他类的成员函数、类中所有成员函数。当类被继承时,不同继承方式会带来属性变化:使用private继承后,父类的protected和public属性变为private;使用protected继承,属性变为protected;而使用public继承时...

相似回答