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

 更新时间:2026年02月14日 08:53:12   作者:师大无雨  
C++中类的概念和用法,包括类的成员、方法、修饰符等,以及类的声明和定义,本文通过实例代码介绍C++类和类中的public、protected、private知识,感兴趣的朋友跟随小编一起看看吧

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

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

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

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

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

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

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

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

    补充知识:接口慨念

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

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

#define:

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

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

  class Cat
  {
      public:
     int weight;   
  };
 int main()
 {
     Cat cat;//声明一个对象
    cat.weight=5;
     cout<<"The cat's weight is "<<cat.weight<<endl;
     return 0;
 }

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

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

 class Cat
  {
     public:
     void setWeight(int w){weight=w;}//设置重量
     int print(){return weight;}//返回重量的大小
   private:
    int weight;  
 };
 int main()
 {
     Cat cat;
     cat.setWeight(5);//设置cat的重量为5
     cout<<"The cat's weight is "<<cat.print()<<endl;
     return 0;
 }

总结

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

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

到此这篇关于C++ 理解类 和 类中的public、protected、private的文章就介绍到这了,更多相关C++类public、protected、private内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#实现以管理员方式启动程序的多种方法

    C#实现以管理员方式启动程序的多种方法

    在Windows应用程序开发的领域中,C#语言凭借其强大的功能和广泛的适用性,被众多开发者所青睐,然而,在实际的开发过程里,我们常常会遭遇程序需要访问特定的系统资源,像是系统文件夹、注册表项等,在接下来的内容中,我将为大家介绍在C#中实现以管理员方式启动程序的多种方法
    2025-01-01
  • C#读写txt文件多种方法实例代码

    C#读写txt文件多种方法实例代码

    这篇文章主要介绍了C#读写txt文件的小例子,大家可以参考使用
    2013-11-11
  • 使用Nopcommerce为商城添加满XX减XX优惠券功能

    使用Nopcommerce为商城添加满XX减XX优惠券功能

    中秋国庆节眼看到跟前了,很多商城都借此机会搞促销活动,什么满200减80送优惠券等活动,基于后台程序是怎么实现的呢?下面脚本之家小编带领大家一起学习吧
    2015-09-09
  • 详解C#中的session用法

    详解C#中的session用法

    这篇文章主要介绍了C#中的session用法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • C#服务生命周期:Singleton、Scoped、Transient用法及说明

    C#服务生命周期:Singleton、Scoped、Transient用法及说明

    文章介绍了三种服务生命周期:单例、作用域和瞬态,并讨论了如何在ASP.NETCore中使用这些生命周期管理服务,单例在应用程序生命周期中只有一个实例,作用域在每个请求中创建一个新实例,瞬态每次请求时创建一个新实例
    2025-01-01
  • C#词法分析器之正则表达式的使用

    C#词法分析器之正则表达式的使用

    本篇文章介绍了,C#词法分析器之正则表达式的使用。需要的朋友参考下
    2013-05-05
  • Unity3D基于UGUI实现虚拟摇杆

    Unity3D基于UGUI实现虚拟摇杆

    这篇文章主要为大家详细介绍了Unity3D基于UGUI实现虚拟摇杆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • 详解WPF中的APP生命周期以及全局异常捕获

    详解WPF中的APP生命周期以及全局异常捕获

    这篇文章主要为大家详细介绍了WPF中的APP生命周期以及全局异常捕获的相关资料,文中的示例代码讲解详细,对我们学习WPF有一点的帮助,需要的可以了解一下
    2023-03-03
  • C#简单邮件群发通用类

    C#简单邮件群发通用类

    这篇文章主要为大家分享了简单的C#邮件群发通用类,代码简单实用,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Winform开发中使用下拉列表展示字典数据的几种方式

    Winform开发中使用下拉列表展示字典数据的几种方式

    这篇文章介绍了Winform开发中使用下拉列表展示字典数据的几种方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09

最新评论