当前位置: 首页 > news >正文

类 和 对象 的介绍

  • 对象的本质是一种新的数据类型。
  • 类是一个模型,对象是类的一个具体化实例。为类创建实例也就是创建对象。

一、类(class)

  • 类决定一个对象将是什么样的(有什么属性、功能)。
  • 类和变量一样,有名字。

1.创建类

class MyFirstClass  //类用关键字class声明
{
	
}; //注意有分号

2.注意事项: 

  • 类和结构的区别:对象的内部可以有变量函数,而结构通常只由各种变量构成。
  • 类名:类名的第一个字母采用大写是一种习惯的上的标准,但不是硬性规定。
  • 还有在类声明末尾,必须有一个分号,这一点跟 C++ 结构情况相同。
  • 类由变量和函数组成。类里边的变量成为属性,对象将使用那些变量来存储
    信息;类里边的函数成为方法,调用那些函数来完成操作。

3.案例,创建车类

#include<iostream>

class Car
{
	public:
		//属性的声明: 
		std::string color; //颜色 
		std::string engine; //引擎 
		float gas_tank; //油量 
		unsigned int Wheel; //轮子个数 
		
		//方法的声明: 
		void fiill_tank(float liter);//加油,参数是公升 
		void runing(void);//跑起来 
};

//方法的实现:
void Car ::fiill_tank(float liter)	//::作用域解析符 。这里的意思是:fiill_tank这个函数是属于Car类里边的 
{
	gas_tank+=liter;
}


int main()
{
	return 0; 
 } 

作用域解析操作符( :: )作用:告诉编译器这个方法存在于何处,或者说是属于哪一类。

  • 其实我们对这个不应该感到陌生,从一个开始我们就不提倡 using namespace std; 这样偷懒的做法,所以我们是 std::cout 。。。
  • 事实上 std::cout 所引用的是 std 里定义的 cout,而 std::string 数据类型其实也是一个对象。我们一直在使用对象,只是自己还不知道罢了。

4. 类中声明常量

C++ 允许在类里声明常量,但不允许对它进行赋值

class Car
{
    public:
    const float TANKSIZE = 85; // 出错 @_@
};

绕开这一限制的方法就是创建一个静态常量 

class Car
{
    public:
    static const float FULL_GAS = 85;
}

5.声明类的同时创建类的对象

类似于使用结构的情况,可以在声明某个类的同时立刻创建一些该类的对象:(C++中允许但不提倡这样做)

class Car
{
    ......
} car1, car2;

二、对象 

1.创建对象

Car car;//创建一个Car对象car 

 2.访问成员

通过对象可以访问其公共成员变量和成员函数:对象.属性

car.color="red";

3.对象赋值给另一个对象 

把一个对象赋值给另一个同类的对象,将会自动使同名的属性有同样的值

Car car1, car2;
car1.setColor(“WHITE”);
......
car2 = car1;


三、完整代码

#include<iostream>

class Car
{
	public:
		//属性的声明: 
		std::string color; //颜色 
		std::string engine; //引擎 
		float gas_tank; //油量 
		unsigned int Wheel; //轮子个数 
		
		//方法的声明: 
		void fiill_tank(float liter);//加油,参数是公升 
		void runing(void);//跑起来 
};

//方法的实现:
void Car ::fiill_tank(float liter)	//::作用域解析符 。这里的意思是:fiill_tank这个函数是属于Car类里边的 
{
	gas_tank+=liter;
}
void Car::runing()
{
	std::cout<<"跑起来了,真酷!"<<"\n";
}

int main()
{
	Car car;//创建一个Car对象car 
	car.color="red";
	car.gas_tank=66.6;
	car.fiill_tank(6.6);
	car.runing(); 
	std::cout<<"车的颜色:"<<car.color<<"\n";
	std::cout<<"车的油量:"<<car.gas_tank<<"\n";
	return 0; 
 } 



未完待续。。。

http://www.dtcms.com/a/113224.html

相关文章:

  • 2024 .11-2025.3 一些新感悟
  • 【33期获取股票数据API接口】如何用Python、Java等五种主流语言实例演示获取股票行情api接口之沪深A股当天逐笔交易数据及接口API说明文档
  • 【2020】【论文笔记】相变材料与超表面——
  • 使用Cusor 生成 Figma UI 设计稿
  • 数据库并发控制问题
  • 麒麟系统桌面版本v10安装教程
  • 【动手学深度学习】卷积神经网络(CNN)入门
  • 低代码开发平台:飞帆画 echarts 柱状图
  • pygame里live2d的使用方法(live2d-py)
  • 人工智能与计算机技术赋能高中教育数字化教学模式的构建与实践
  • Git 分布式版本控制工具
  • 【ROS2】〇、ROS2的安装
  • 神经网络与深度学习:案例与实践——第三章(2)
  • 3D图像重建中Bundle Adjustment的推导与实现
  • Shell脚本笔记
  • Java第三节:新手如何用idea创建java项目
  • #SVA语法滴水穿石# (004)关于 ended 和 triggered 用法
  • Java HttpURLConnection修仙指南:从萌新到HTTP请求大能的渡劫手册
  • #SVA语法滴水穿石# (005)关于 问号表达式(condition ? expr1 : expr2)
  • Arduino示例代码讲解:ADXL3xx 加速传感器
  • Java 类型转换和泛型原理(JVM 层面)
  • 论定制开发开源 AI 智能名片 S2B2C 商城小程序源码在零售变革中的角色与价值
  • 基于sklearn实现文本摘要思考
  • Linux进程间通信——有名管道
  • 【AI论文】基础智能体(Foundation Agents)领域的进展与挑战:从类脑智能到进化型、协作型及安全型系统
  • 数据化管理(二)---寻找零售密码
  • 使用Ubuntu18恢复群晖nas硬盘数据外接usb
  • [自制调试工具]利用模板函数打造通用调试工具
  • 使用OpenFeign实现服务远程调用
  • 数据定义语言