【零基础学习C++】如何写一个C++类?

这篇具有很好参考价值的文章主要介绍了【零基础学习C++】如何写一个C++类?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【零基础学习C++】如何写一个C++类?

个人主页:【😊个人主页】
系列专栏:【❤️系列专栏:零基础学习C++】



前言

类是对现实生活中一类具有共同特征的事物的抽象

类的内部封装了属性和方法,用于操作自身的成员。类是对某种对象的定义,具有行为(behavior),它描述一个对象能够做什么以及做的方法(method),它们是可以对这个对象进行操作的程序和过程。它包含有关对象行为方式的信息,包括它的名称、属性、方法和事件。


什么是类?🤔

类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。

类的实质是一种引用数据类型,类似于 byte、short、int(char)、long、float、double 等基本数据类型,不同的是它是一种复杂的数据类型。因为它的本质是数据类型,而不是数据,所以不存在于内存中,不能被直接操作,只有被实例化为对象时,才会变得可操作。

类的构成包括成员属性和成员方法(数据成员和成员函数)。数据成员对应类的属性,类的数据成员也是一种数据类型,并不需要分配内存。成员函数则用于操作类的各项属性,是一个类具有的特有的操作

类的三大特性👣

  1. 封装性将数据和操作封装为一个有机的整体,由于类中私有成员都是隐藏的,只向外部提供有限的接口,所以能够保证内部的高内聚性和与外部的低耦合性。用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员,能够增强安全性和简化编程。
  2. 继承性更符合认知规律,使程序更易于理解,同时节省不必要的重复代码。
  3. 多态性是指同一操作作用于不同对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向父类(基类)的指针,来调用实现子类(派生类)中的方法。

【零基础学习C++】如何写一个C++类?

定义一个类💻

class 类名 {
    public: 公有成员
    private: 私有成员
    protected: 保护成员
};
  • 公有成员、私有成员、保护成员均包含数据成员和成员函数两部分,彼此没有顺序之分。一个 public / private / protected 关键字下可以跟多个成员,直到下一个 public / private / protected 关键字。如果成员前面没有 public / private / protected 关键字,默认为私有成员。
  • 结尾部分的分号必不可少,否则会发生语法错误。
  • 无论公有成员、私有成员还是保护成员,彼此之间都可以访问。比如公有的成员函数可以操作保护的数据成员,也可以调用私有的成员函数。
  • 类的数据成员是类型,所以不能被赋值,声明数据成员和声明普通变量的格式相同,比如 “ int n; ”
  • 成员函数的实现
    成员函数可以在类内实现,也可以在类外实现。内部实现的成员函数被默认为加上了 inline;外部实现的成员函数必须加上域操作符,即 “ 类名 :: 成员函数 ”。

类的实例化🔬

声明一个类类型的对象,就是类的实例化,会涉及到必要的内存分配。

类名 对象名(参数列表);
如果没有参数,括号必须省略,即 “ 类名 对象名;”,自动调用构造函数。特殊地,参数可以是类的对象,此时会自动调用拷贝构造函数。

【零基础学习C++】如何写一个C++类?文章来源地址https://www.toymoban.com/news/detail-511417.html

到了这里,关于【零基础学习C++】如何写一个C++类?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++如何获取一个数字的位数

    在C++中,可以使用以下方法获取一个数字的位数: 使用字符串处理函数:将数字转换为字符串,然后使用字符串的长度函数来获取位数。 使用循环和除法运算符:通过反复除以10并计数来确定数字的位数。 这两种方法都可以有效地获取数字的位数。第一种方法使用字符串处

    2024年02月16日
    浏览(25)
  • [C++]学习中的一个问题

    为什么 == 0 是true,而打印出来没东西啊,是个初始化的问题,我不是 memset(str, 0, sizeof(str)); 把str的所有位置都置成0了么。

    2024年02月11日
    浏览(20)
  • Modern C++ 一个例子学习条件变量

    目录 问题程序 施魔法让BUG浮出水面 条件变量注意事项 修改程序 今天无意中看到一篇帖子,关于条件变量的,不过仔细看看发现它并达不到原本的目的。 程序如下,读者可以先想想他的本意,以及有没有问题: OK,本意显然是: 从1开始打印整数 线程t1, 打印非5的倍数 线程

    2024年01月20日
    浏览(25)
  • C++ 如何快速实现一个容器的迭代器

    C++的标准库中的容器都会提供迭代器,如果一个容器满足forward_range,那么这个容器一般会提供以下成员类型和函数: iterator const_iterator begin end begin cend 如果该容器还满足bidirectional_range,那么该容器还会额外提供以下成员类型和函数: reversed_iterator const_reversed_iterator rbegin r

    2024年02月05日
    浏览(30)
  • (C++) 如何设计一个安全的pop函数

    在经典数据结构, stack 和 queue 中有一个重要的函数那就是 pop() 表示弹出线性顶部的一个元素。 而在各种语言的标准数据结构中也自然有这些数据结构和对应的函数。 在C++中,pop()无返回,且对空对象pop()行为未定义。 空对象未定义可以理解,但是为什么不返回顶部元素呢?

    2024年03月13日
    浏览(27)
  • C++之深入解析如何实现一个线程池

    当进行并行的任务作业操作时,线程的建立与销毁的开销是,阻碍性能进步的关键,因此线程池,由此产生。使用多个线程,无限制循环等待队列,进行计算和操作,帮助快速降低和减少性能损耗。 线程池的组成: 线程池管理器:初始化和创建线程,启动和停止线程,调配

    2024年02月02日
    浏览(25)
  • C++面试八股文:如何实现一个strncpy函数?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第31面: 面试官: strcpy 函数使用过吧? 二师兄:用过。 面试官:这个函数有什么作用? 二师兄:主要用做字符串复制,将于字符从一个位置复制到另一个位置。 面试官: strncpy 函数也使用过吧,和 strcpy 有何不同? 二师兄:

    2024年02月11日
    浏览(40)
  • 你知道C++如何在一个函数内返回不同类型吗?

    C++ 中要在一个函数内返回不同类型的值,你可以使用 C++17 引入的 std::variant 或 std::any,或者使用模板和多态。下面将分别介绍这些方法。 std::variant 允许你在一个函数内返回不同类型的值,但它要求所有可能的返回类型都在一个有限的集合中,你需要提前定义这个集合。 首先

    2024年02月05日
    浏览(50)
  • Linux C++ 网络编程基础(2) : TCP多线程一个server对应多个client

    作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/   tcp编程时, 一个server可以对应多个client, server端用多线程可以实现. linux下多线程可以使用POSIX的线程函数, 下面给出服务端和客户端的代码.   Linux POSIX线程库提供了一组函数来创建、管理和同步

    2024年02月13日
    浏览(37)
  • C++,如何快速的求一个正整数的所有因数的个数?

          首先,让我们看看什么是因数,       定义 :因数是指整数a除以整数b(b≠0) 的商正好是整数而没有余数,我们就说b是a的因数。      好,接下来是问题: 题目描述       给定一个整数n(1n10^9),求出n的因子的个数。      首先我们先看一看 数据范围 。  

    2024年02月12日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包