首页 > 编程语言 >【C++入门】(一)创建基本类

【C++入门】(一)创建基本类

时间:2022-09-23 10:25:31浏览次数:48  
标签:函数 Tricycle 创建 成员 入门 wichita C++ 变量 构造函数

1. 类型是是什么?

类型是一个包含 数据功能 的对象

 

2. 什么是类和对象?

C++类是一个模板,用于创建对象。

类是一系列捆绑在一起的 变量函数变量 构成了类的数据,而 函数 使用这些数据来执行任务。

变量函数 捆绑在一起,称为 封装

 

类中 变量 称为 成员变量(数据变量/实例变量) ;类中 函数 被称为 类的成员函数或方法

 

3. 如何定义新类并创建其对象?

3.1(声明 Tricycle 类)

//class 声明类(类名 Tricycle 首字母大写)
class Tricycle
{
public :
    //两个成员变量:speed、wheelSize
    unsigned int speed;
    unsigned int wheelSize;
​
    //两个成员函数:pedal、brake
    pedal();
    brake();
};
//上述声明不会给Tricycle分配内存,只是告诉编译器Tricycle类里面有哪些数据(speed、wheelSize),能干什么(pedal、brake)

 


3.2(创建对象 wichita)

Tricycle wichita;
​
//创建一个名为 wichita 的 Tricycle 对象。
//(创建对象被称为实例化)
//创建该对象时,将 Tricycle 作为模板(包含 Tricycle 类定义的所有成员变量和成员函数)
//注意:Tricycle类 和 Tricycle对象,不是一个东西


3.3(访问类成员)

wichita.speed = 6;
wichita.pedal();
 
//用 . 运算符来设置成员变量、访问成员函数
//public 让类内数据对所有使用 Tricycle 对象的其他类和程序可用
//(默认情况下,所有成员变量和成员函数都是私有的,private 只能在其所属类的函数内访问)

 

3.4(修改 Tricycle 类,创建私有成员变量 model)

class Tricycle
{
  int model = 110;
  
  public :
    unsigned int speed;
    unsigned int wheelSize;
    pedal();
    brake();
};
​
//通过将数据成员声明为私有,可限制对它们的访问,控制它们的修改方式
//成员变量最好声明为私有,这样将只能通过成员函数访问它们

 

 

3.5(实现成员函数)

void Tricycle::pedal()
{
  cout << "Pedalling trike" << endl;
}
​
//成员函数的定义:以类名打头 + 作用域解析运算符( ::) + 函数名
//类函数与常规函数相同,也可以接受参数并返回值

 

 

3.6(构造函数和析构函数,特殊的成员函数)

Tricycle :: Tricycle(int initialSpeed)
{
  setSpeed(initialSpeed);
}
​
//构造函数的职责:创建一个有效的对象,这常包括初始化成员对象
//构造函数与类同名,且没有返回值

Tricycle :: ~Tricycle
{
}
​
//如果声明了构造函数,也应声明析构函数
//构造函数创建并初始化对象,而析构函数执行清理工作,并释放分配给对象的内存
//析构函数名由 (~) + 类名 组成,不接受任何参数,也不返回值

 


3.7(默认构造函数)

Tricycle wichita(5);
​
//在括号内指定一个参数(或多个参数),这些参数将传递给构造函数

Tricycle wichita;
​
//也可以创建对象时,不指定参数
//(这将调用默认构造函数 —— 没有参数的构造函数)
//编译器提供的默认构造函数不执行任何操作(就像声明了一个没有参数且函数体为空的构造函数)

 

4.补充

4.1 类不占据内存(只是关于如何创建对象的定义),对象占据的内存量取决于其成员变量的长度

4.2 一般情况下,所有数据声明为私有,所有函数声明为公有(以便调用)

 

 

标签:函数,Tricycle,创建,成员,入门,wichita,C++,变量,构造函数
From: https://www.cnblogs.com/ZWJ-zwj/p/16721754.html

相关文章

  • oracle 创建表空间
    oracle创建表空间oracle创建表空间可能很多人并不是很了解,下面就来简单介绍一下,主要是分为四步的,每一步的代码一定要认真研究,这样才能保证正确创建。 ......
  • C入门第一笔
    C语言源代码(由高级语言编写C++、Java等)—>通过C语言编译程序编译—>二级制机器指令(0和1)源程序......
  • C++ "链链"不忘@必有回响之双向链表
    C++"链链"不忘@必有回响之双向链表1.前言写过一篇与单链表相关的博文(https://blog.51cto.com/gkcode/5681771),实际应用中,双向循环链表的功能更强大。单链表中,查询一个......
  • cesium 入门指南
    最近拿到了几份offer,经过这次找工作发现自己最近脱节挺严重,为了后续的职业发展,决定开始书写博客记录自己的努力。cesium属于跨平台、跨浏览器的展现三维地球、地图的Java......
  • 利用强类型数据集创建数据库访问层
    创建数据访问层项目2021/10/20 本文档是 VisualC# 教程  (切换到VisualBasic教程)该教程从头开始使用TypedDataSet(强类型DataSet)创建数据访问层(D......
  • 「浙江理工大学ACM入队200题系列」问题 A: 零基础学C/C++34—— 3个数比较大小(冒泡排
    深夜写的,代码都还没来得及跑一便,可能有错误,欢迎指出,后续会检验一遍并修改错误.本题是浙江理工大学ACM入队200题第四套中的A题,同时给出了冒泡排序和选择排序算法......
  • 从汇编看C++函数返回对象
    同样的代码,在msvc和gcc里面实现不同。structTest{inta;intb;intc;intd;~Test(){std::cout<<"end"<<std::endl;}};TestgetTest(){Testsa;sa.a=1......
  • NLP新手入门指南|北大-TANGENT
    开源的学习资源:《NLP新手入门指南》,项目作者为北京大学TANGENT实验室成员。该指南主要提供了NLP学习入门引导、常见任务的开发实现、各大技术教程与文献的相关推荐等......
  • 【Azure 应用服务】如果发现当前使用的订阅无法在China North 3 区中无法创建App Ser
    问题描述在创建AppService服务时,突然发现无法选择ChinaNorth3区域,如何来解决这个问题呢? 问题解答根据Azure中服务都需要在订阅中注册的原理,因为ChinaNorth3区域......
  • C++:储存持续性、作用域及链接性
      C++11的存储类别会影响信息在文件间的共享,一共有四种方案来保存数据,也就是变量的保存时间,而作用域决定变量的保存范围。持续时间自动存储连续性:函数内部定义中声明......