C++ 类定义

C++ 类定义

定义一个类需要使用关键字 class,然后指定类的名称,并类的主体是包含在一对花括号中,主体包含类的成员变量和成员函数。

定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。

以下实例我们使用关键字 class 定义 Box 数据类型,包含了三个成员变量(可理解为属性) length、breadth 和 height:

class Box

{

public:

double length; // 盒子的长度

double breadth; // 盒子的宽度

double height; // 盒子的高度

};

关键字 public 确定了类成员的访问属性。在类对象作用域内,公共成员在类的外部是可访问的。您也可以指定类的成员为 privateprotected

定义 C++ 对象

类提供了对象的蓝图,所以基本上,对象是根据类来创建的。声明类的对象,就像声明基本类型的变量一样。下面的语句声明了类 Box 的两个对象:

Box Box1; // 声明 Box1,类型为 Box

Box Box2; // 声明 Box2,类型为 Box

格式为 数据类型(自创) 对象;

访问数据成员

类的对象的公共数据成员可以使用直接成员访问运算符 . 来访问。

length和height是自定义的成员变量属性 声明 set()和get()是自定义的成员函数(方法)属性 声明

以下是代码实战

cpp 复制代码
#include<iostream>
using namespace std;
class Box
{
	public:
		//成员变量属性 声明 
		double length;//长度
		double breadth;//宽度
		double height;//高度 
		//成员函数(方法)属性 声明
		double get(void);
		void set(double len,double bre,double hei); 
};
//成员函数定义
double Box::get(void)
{
	return length*breadth*height;
 } 
 void Box::set(double len,double bre,double hei)
 {
 	length=len;
 	breadth=bre;
 	height=hei;
 }
 int main(){
 	Box Box1;//声明(定义对象),类型为Box
	Box Box2;//声明Box2,类型为Box
	Box Box3;//声明Box3,类型为Box
	double volume=0.0;//用于储存体积
	
	//box1详述
	Box1.height=5.0;
	Box1.length=6.0;
	Box1.breadth=7.0;
	
	//box2详述
	Box2.height=10.0;
	Box2.length=12.0;
	Box2.breadth=13.0;
	
	//box1体积
	volume=Box1.height*Box1.length*Box1.breadth;
	cout<<"Box1的体积:"<<volume<<endl;
	
	//box2的体积
	volume=Box2.height*Box2.length*Box2.breadth;
	cout<<"Box2的体积:"<<volume<<endl;
	
	//box3详述
	Box3.set(16.0,8.0,12.0);
	volume=Box3.get();
	cout<<"Box3的体积:"<<volume<<endl;
	return 0; 
 	
 }

需要注意的是,私有的成员和受保护的成员不能使用直接成员访问运算符

相关推荐
码匠许师傅3 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
2603_965148114 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
小小龙学IT5 小时前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
知无不研6 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
cfm_29147 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
C++ 老炮儿的技术栈8 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐
qq_448011168 小时前
C语言中的柔性数组
c语言·开发语言·柔性数组
小白学大数据8 小时前
长周期爬虫的数据一致性:断点续爬 + 事务回滚保障采集质量
开发语言·爬虫·测试工具
zlinear数据采集卡9 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
Poo_Chai9 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库