深入理解c++中public,protected,及private用法。
2015-04-22 16:53
351 查看
学习c++有一段时间了,越来越感觉c及c++基础的重要性,以前一直对c++的private,public,protected及继承有一些疑惑,看过了前辈们的讲解,顿时茅塞顿开,可能有些书上讲解的很详细,但是不一定能让大家理解的清晰透彻,所以我想写一篇自己的理解,希望可以帮助一些新学习c++语言的朋友们。
c++语言的几个特性是抽象,封装,继承,多态。这里我们主要研究一下封装和继承。
1.在无继承的情况下,类内部可以随意访问,即使是private,;类外部无法访问protected/private成员
.但是可以访问public成员。
通过这个例子,大家可以看到本类中的成员函数是可以访问私有成员的,但在类外,本例子就是main()中,是不能访问私有和保护成员的。
2. (先确定类继承方式,
再确定继承后子类的新成员属性,
最后确定子类内部/外部的访问权限:!!!此时即使是在子类的内部也不能访问父类的private
)
1.若是public继承的话,父类的public/protected/private属性继承到子类时,均不会变化
新成员
在子类内部访问时,无法访问父类的private(对比:在无继承时,类内可随便访问)
在子类外部访问时,无法访问子类的新成员protected/private
2.若是protected继承的话,父类的public/protected/private属性继承到子类时,会变化为[b]新成员(protected/protected/private)[/b]
在子类内部访问时,无法访问父类的private(对比:在无继承时,类内可随便访问)
在子类外部访问时,无法访问子类的新成员protected/private
3.若是private继承的话,父类的public/protected/private属性继承到子类时,会变化为private/private/private;
在子类内部访问时,无法访问父类的private(对比:在无继承时,类内可随便访问)
在子类外部访问时,无法访问子类的新成员protected/private
相信大家看了上面的例子会有更深的理解,大家可以自己动手编写一下上面的例子,会有意想不到的收获。
给大家总结几句话:
1.public继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:public, protected, private
2.protected继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:protected, protected, private
3.private继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:private, private, private
但无论哪种继承方式,下面几点都没有改变:
1.private成员只能被本类成员(类内)和友元访问,不能被派生类访问;
2.protected成员可以被派生类访问;
3.基类的private成员不能被派生类访问,但是基类的protected成员可以被派生类访问。
c++语言的几个特性是抽象,封装,继承,多态。这里我们主要研究一下封装和继承。
1.在无继承的情况下,类内部可以随意访问,即使是private,;类外部无法访问protected/private成员
.但是可以访问public成员。
通过这个例子,大家可以看到本类中的成员函数是可以访问私有成员的,但在类外,本例子就是main()中,是不能访问私有和保护成员的。
2. (先确定类继承方式,
再确定继承后子类的新成员属性,
最后确定子类内部/外部的访问权限:!!!此时即使是在子类的内部也不能访问父类的private
)
1.若是public继承的话,父类的public/protected/private属性继承到子类时,均不会变化
新成员
在子类内部访问时,无法访问父类的private(对比:在无继承时,类内可随便访问)
在子类外部访问时,无法访问子类的新成员protected/private
2.若是protected继承的话,父类的public/protected/private属性继承到子类时,会变化为[b]新成员(protected/protected/private)[/b]
在子类内部访问时,无法访问父类的private(对比:在无继承时,类内可随便访问)
在子类外部访问时,无法访问子类的新成员protected/private
3.若是private继承的话,父类的public/protected/private属性继承到子类时,会变化为private/private/private;
在子类内部访问时,无法访问父类的private(对比:在无继承时,类内可随便访问)
在子类外部访问时,无法访问子类的新成员protected/private
相信大家看了上面的例子会有更深的理解,大家可以自己动手编写一下上面的例子,会有意想不到的收获。
给大家总结几句话:
1.public继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:public, protected, private
2.protected继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:protected, protected, private
3.private继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:private, private, private
但无论哪种继承方式,下面几点都没有改变:
1.private成员只能被本类成员(类内)和友元访问,不能被派生类访问;
2.protected成员可以被派生类访问;
3.基类的private成员不能被派生类访问,但是基类的protected成员可以被派生类访问。
相关文章推荐
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法
- 【转】深入理解C++中public、protected及private用法
- 深入理解C++中public、protected及private用法