C++ 理解类 和 类中的public、protected、private

我们要明确,不只是C++有类,很多语言也会用到类,因为现在很多都是面向对象编程...

在c++中,关于类的理解,个人理解是这样的,具有共同属性的一个集合被称为类,

比如说人这个集合,具有性别,年龄,出生日期等属性,可以构成一个类的成员,除此此外,

如果这个类具有共同的技能的话,我们也可以把这种技能称之为共同的方法,常见的类的

修饰符有private即私有的成员修饰,public即修饰共同的成员,一般类可以看作是Java中的

一个包类中提供了数据表示即成员函数和操作数据的方法即成员函数如何使用的方法。

一般的话,类的规范说明由两个部分组成:

1、类的声明,即类的成员函数的声明,以成员函数的方式被称作公有接口

补充知识:接口慨念

接口就是一个共享的框架,主要由我们自己写的方法所提供

2、类的方法的定义,即如何实现类的成员函数

#define:

  1.关键字public可以将类的成员说明为是公有的,及可以被该类的所有成员所访问;
  2.关键字private可以将类的成员说明为是私有的,它不能直接被对象访问。

  其实,说白了就是对于公有成员,我们可以利用对象来进行直接调用,比如说:

 1 class Cat
 2
 3 {
 4
 5     public:
 6
 7     int weight;
 8
 9 };
10
11 int main()
12
13 {
14
15     Cat cat;//声明一个对象
16
17    cat.weight=5;
18
19     cout<<"The cat‘s weight is "<<cat.weight<<endl;
20
21     return 0;
22
23 }

在上面这个程序中,由于Cat类中的成员函数weight被声明成了公有成员,那么我们就可以在主窗口中首先创建一个Cat类的对象(cat),并利用.运算符就可以直接调用weight这个数据成员了。

  但是,值得注意的是,如果我们想要把上面程序中的public删除掉,改成private。那么这个时候,我们就无法在由Cat类所声明的对象中调用这个weight成员。这是,只有通过在类中设置一个公共的接口函数,才能实现对weight的访问,如下例:

 1 class Cat
 2
 3 {
 4
 5    public:
 6
 7    void setWeight(int w){weight=w;}//设置重量
 8
 9    int print(){return weight;}//返回重量的大小
10
11
12
13   private:
14
15    int weight;
16
17 };
18
19 int main()
20
21 {
22
23     Cat cat;
24
25     cat.setWeight(5);//设置cat的重量为5
26
27     cout<<"The cat‘s weight is "<<cat.print()<<endl;
28
29     return 0;
30
31 }

                                  ==================================总结========================================

  在一般情况下,我们可以将类的数据成员设置为私有的,然后调用类中的公共该接口函数来访问他们。这样做的好处是将数据的赋值与读取分开操作。比如说上例里面,我们就将数据的赋值函数设置成setWeight(int),将数据的读取函数设置成print()。这样的好处就是赋值函数不需要考虑读取函数是如何工作的,读取函数中的代码改变也不会影响到相应的赋值函数。那么这样就提高了代码的可重用性。另外,由于将数据成员进行了私有化,那么各个对象不可以直接访问并修改数据。比如说上例中想要直接修改weight的数值就是不合法的,只有通过公共的接口函数才能访问并且修改到类里面的私有数据成员(weight)。

  这样的设置时程序更容易维护,并且可避免一些不应有的错误。

原文地址:https://www.cnblogs.com/loliconinvincible/p/12514545.html

时间: 2024-07-30 06:58:03

C++ 理解类 和 类中的public、protected、private的相关文章

php类点滴---访问修饰符public protected private

public可以被继承,可以外部访问(也就是实例化对象可以直接访问) protected受保护的,可以被子类继承,无法外部访问 private继承,外部访问都别想 <?phpclass coach{ public $master = "老张"; protected $lover = "丁大锅"; private $lovegame = "SM"; public function slogan() { echo "吼吼~哈哈~&qu

php 定义类属性和方法的public protected private 修饰词的区别

这三个词在定义类的属性和方法时使用,其最大的区别在与他们作用域不同 public :全局使用,不仅是本类,其子类,创建的对象都可以使用,甚至子类的子类由于继承关系,也可以使用. protected:本类和其子类使用,如果后续有继承的话, private : 仅限本类使用 class ClassA { public $a = 1; protected $b = 2; private $c = 3; public function share() { echo 'a='.$this->a."\

java中的public,protected,private权限修饰

在java程序前如果不加任何一个权限修饰符,默认是只允许包内访问,只有在同一个包内的类之间才能访问. public: 对每个人都是可用的,在任何地方的任何包内都可以访问. protected: protected处理的是继承的问题,只有子类和自己可以访问,不局限于本包. private: 只有自己可以访问.

c/c++ 继承与多态 继承中的public, protected, private

问题:类B私有继承类A,类A有个protected成员,那么在类B的成员函数里是否可以使用类A的protected成员? 可以使用. 估计有的同学说不对吧,类B都私有继承了类A了,怎么还能访问类A的protect成员呢?请看下面的例子.在类Pri_derv的f()成员函数里是可以方位父类Base的pub_mem();和prot_mem;的. class Base{ public: void pub_mem(); protected: int prot_mem; private: char pri

14 PHP 类的继承 [public protected private] parent 构造方法 析构方法 重写 最终类和方法 设计模式

类的继承 简单理解: 某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息. 基本概念 继承:一个类从另一个已有的类获得其特性,称为继承. 派生:从一个已有的类产生一个新的类,称为派生. 继承和派生,其实只是从不同的方向(角度)来表述,本质上就是一个事情. 父类/子类:已有类为父类,新建类为子类.父类也叫"基类",子类也叫"派生类" 单继承:一个类只能从

C++中public,protected,private访问

总结:1. protected和private的区别在于 ,protected的访问标号限制,能够被派生类的成员函数访问,而private不能2. protected和publice的区别在于,protected的访问限制,使其不能被基类的对象访问. -----------------------------------------------------第一:private, public, protected 访问标号的访问范围.private:只能由1.该类中的函数.2.其友元函数访问.不

JAVA修饰符类型(public,protected,private,friendly)

JAVA修饰符类型(public,protected,private,friendly) public的类.类属变量及方法,包内及包外的不论什么类均能够訪问:protected的类.类属变量及方法,包内的不论什么类,及包外的那些继承了此类的子类才干訪问:private的类.类属变量及方法,包内包外的不论什么类均不能訪问:假设一个类.类属变量及方法不以这三种修饰符来修饰,它就是friendly类型的,那么包内的不论什么类都能够訪问它,而包外的不论什么类都不能訪问它(包含包外继承了此类的子类),因此

C++:继承访问属性(public/protected/private)

? 公有继承(public) 公有继承在C++中是最常用的一种继承方式,我们先来看一个示例: 1 #include<iostream> 2 using namespace std; 3 class Father{ 4 public: 5 Father()=default; 6 void Father_show1(){ 7 cout<<"调用Father类的public方法:Father_show1"<<endl; 8 } 9 protected: 1

c++ public protected private 继承

1:访问控制 1.1 public 这类型成员可以被类本身函数访问,也可以被外部创建的类对象调用.子类对象与子类内部可以访问 1.2 protected类型成员,只能被类本身函数访问.外部创建的类对象没有访问权限.子类对象没有访问权限,子类内部可以访问 1.3 private类型成员,只能被类本身函数访问,外部创建的类对象没有访问权限.子类对象和子类内部都没有访问权限 class TestObject{ public: void Function(); void TestPublic(); pr

php public protected private属性实例详解

php 类中函数和类变量都有三个属性:public protected private,具体什么时候使用什么属性好纠结,特意找了个实例,这样看起来更清晰. public 表示全局,类内部外部子类都可以访问:private 表示私有的,只有本类内部可以使用:protected 表示受保护的,只有本类或子类或父类中可以访问: <?php//父类class father{ public function a(){ echo "function a"; } private functio