【C++ | 类】类和对象

2024-06-10 1657阅读

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀

🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭

⏰发布时间⏰:2024-05-30

本文未经允许,不得转发!!!

目录

  • 🎄一、概述
  • 🎄二、C++中的类
    • ✨2.1 类将数据和函数组织在一起
    • ✨2.2 类的访问控制(public、private、protect)
    • ✨2.3 实现类成员函数
    • 🎄三、对象(实例)
    • 🎄四、类作用域
      • ✨4.1 类作用域中的常量
      • 🎄五、总结

        【C++ | 类】类和对象

        【C++ | 类】类和对象

        🎄一、概述

        C++是面向对象编程的语言,编写C++代码是以类的形式来组织代码的,然后实例化一个个对象,让对象之间的交互来完成要做的事情。本文主要介绍C++中的自定义类型——类,以及怎么使用类去构建对象。

        既然类是一种自定义类型,那么我们先了解一下什么是类型。类型主要完成下面三项工作:

        • 1、决定该类型的变量(对象)占用多少字节的内存:

          例如:int类型占用4个字节;short类型占用2个字节;char占用1个字节。

        • 2、决定怎样解释内存中的数据;

          例如:内存中存放着0xff这个数据,int类型和char类型对0xff的解释是不同的。

        • 3、决定该类型的变量(对象)可以执行哪些操作:

          例如:int类型的变量可以执行加减乘除等操作;而int*类型的变量一般不会执行乘法、除法的操作。

          下面的内容将介绍类和对象。


          【C++ | 类】类和对象

          🎄二、C++中的类

          类是一种将抽象转换为用户定义类型的 C++工具, 它将数据表示和操纵数据的方法组合成一个整洁的包。

          ✨2.1 类将数据和函数组织在一起

          如果你之前学过C语言,那么可能会觉得类和结构体会有点类似,它可以将多个数据组织在一起,但不同于C语言的结构体,类成员除了数据还可以是函数。定义一个类,可以使用class关键字。

          class Animal
          {
          	int legs;
          	int eye;
          	void run()
          	{
          		cout 
          private:
          	int legs;
          	int eye;
          	
          public:
          	void run() // 公有接口
          	{
          		cout 
          private:
          	int legs;
          	int eye;
          public:
          	int legs() // 公有接口
          	{
          		return legs;
          	}
          };
          
          ...
          public:
          	void run() // 公有接口
          	{
          		cout 
          private:
          	int legs;
          	int eye;
          	
          public:
          	void run() // 公有接口
          	{
          		cout 
          	legs = _legs;
          }
          int Animal::GetLegs()
          {
          	return legs;
          }
          int main()
          {
          	Animal animal;
          	animal.run();
          	animal.SetLegs(4);
          	cout 
          private:
          	int legs;
          	int eye;
          	
          public:
          	void run()
          	{
          		cout 
          		return legs;
          	}
          };
          void Animal::SetLegs(int _legs)// 作用域解析运算符(`::`)
          {
          	legs = _legs;
          }
          int main()
          {
          	Animal animal;
          	animal.run(); // 直接成员运算符(`.`)
          	
          	Animal *pAnimal = new Animal();
          	pAnimal-run(); // 间接成员运算符(`-`) 
          	
          	return 0;
          }
          	
          public:
          	const int Month_C = 12;	// 报错:invalid use of non-static data member ‘Date::Month_C’
          	int mon_const[Month_C];
          };
          	
          public:
          	enum {
          		Month_E = 12
          	};
          	int mon[Month_E];
          };
          	
          public:
          	static const int Month_C = 12;	// 报错:invalid use of non-static data member ‘Date::Month_C’
          	int mon_const[Month_C];
          };
          	
          public:
          	enum {
          		Month_E = 12
          	};
          	
          	//const int Month_C = 12;	// 报错:invalid use of non-static data member ‘Date::Month_C’
          	static const int Month_C = 12; // 属于整个类
          	
          	int mon[Month_E];
          	int mon_const[Month_C];
          };
          int main()
          {
          	Date date;
          	cout 
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]