《零基础看得懂的C++入门教程 》——(10)面向对象

一、学习目标

  1. 了解C++类是什么
  2. 了解类对象与类型修饰一样进行创建
  3. 了解了类的属性如何使用
  4. 了解了类方法的使用方法

目录

预备第一篇,使用软件介绍在这一篇,C++与C使用的软件是一样的,查看这篇即可:《软件介绍》
想了解编译原理和学习方法点这篇,学习方法和一些原理C++与C都是相同的《脱离学习误区》

《零基础看得懂的C++入门教程 》——(1)第一个C++程序就让你知其所以然
《零基础看得懂的C++入门教程 》——(2)什么是数据类型、变量?一看便会
《零基础看得懂的C++入门教程 》——(3)表达式花样挺多鸭
《零基础看得懂的C++入门教程 》——(4)条件判断原来如此
《零基础看得懂的C++入门教程 》——(5) 容我套个娃 循环
《零基础看得懂的C++入门教程 》——(6)自己动手写个函数
《零基础看得懂的C++入门教程 》——(7)小数组玩起来
《零基础看得懂的C++入门教程 》——(8)搞定二维数组与循环嵌套
《零基础看得懂的C++入门教程 》——(9)结构体原来如此

推荐

欢迎大家关注公众号,公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍2份哟~
在这里插入图片描述

二、了解类的使用方法

2.1 什么是C++类及基本使用方法
类用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

例如:人是一种类型,拥有年龄、身高、体重、性别等属性。具体一个人是一个对象,例如小明;小明有年龄、身高、体重、性别等属性。小红也是人,所以具有相同属性。

类变量类变量在整个实例化的对象中是公用的。或者可以理解为属性。创建一个人的类,类里面有类变量,使用类变量记录人的年龄、性别、身高等属性。定义一个类使用关键字class,随后是一个类名,在类名后的花括号中编写当前类的内容:

class HumanClass{public:char name;char sex;int age;
};

以上代码创建了一种类型,这种类型具备name名字、sex性别和age年龄这几个属性,并且这几个属性是公开的;就像你玩游戏一样,游戏角色的名称是看得见的,也可以看见是男性还是女性;其中public就是表示在冒号:后定义的变量都是公开内容。我们字使用这些公开属性时,可以直接创建一个对象后在外部使用。具体使用如下:

#include<iostream>
using namespace std;
class HumanClass{public:char name;char sex;int age;
};
int main() {HumanClass xiaoming;xiaoming.age=11;xiaoming.sex='N';xiaoming.name='M';cout<<"小明的age是:"<<xiaoming.age<<endl;cout<<"小明的sex是:"<<xiaoming.sex<<endl;cout<<"小明的name是:"<<xiaoming.name<<endl;
}

以上代码创建一个具体类型很简单,使用HumanClass xiaoming;就可以创建一个HumanClass 这个类型的对象,在这里具体为是xiaoming;这就意味着,xiaoming属于这一个类别,由于age、sex、name都属于公开的属性,那我们就可以去更改他,那么接下来就开始对xiaoming这个类型的属性进行赋值:

xiaoming.age=11;
xiaoming.sex='N';
xiaoming.name='M';

随后我们还可以进行输出:

cout<<"小明的age是:"<<xiaoming.age<<endl;
cout<<"小明的sex是:"<<xiaoming.sex<<endl;
cout<<"小明的name是:"<<xiaoming.name<<endl;

运行程序可以看到结果:

2.2 了解类方法的使用
类方法就是指这个类中定义的函数,这个类具有哪些功能;例如狗有个方法就是发声,汪汪叫;定一个方法用来输出汪汪,模拟狗的叫声。
以下是一个类,名为Dog:

class Dog{public:char name;char sex;int age;void jiao(){cout<<"汪汪叫"<<endl;}
};

在以上类中一个函数,名为jiao,这个jiao的功能是输出“汪汪叫”。我们首先创建这个类的对象:

Dog wang;

随后定义属性值:

wang.age=11;
wang.sex='N';
wang.name='M';

类的方法使用也非常简单,跟函数使用后的功能一样:

wang.jiao();

最后输出一下内容:

cout<<"小明的age是:"<<wang.age<<endl;
cout<<"小明的sex是:"<<wang.sex<<endl;
cout<<"小明的name是:"<<wang.name<<endl;

完整的代码如下:

#include<iostream>
using namespace std;
class Dog{public:char name;char sex;int age;void jiao(){cout<<"汪汪叫"<<endl;}
};
int main() {Dog wang;wang.age=11;wang.sex='N';wang.name='M';wang.jiao();cout<<"小明的age是:"<<wang.age<<endl;cout<<"小明的sex是:"<<wang.sex<<endl;cout<<"小明的name是:"<<wang.name<<endl;}

结果如下:

三、总结

  1. 了解C++类是什么
  2. 了解类对象与类型修饰一样进行创建
  3. 了解了类的属性如何使用
  4. 了解了类方法的使用方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

appinventor连接MySQL_appinventor如何连接sqlserver数据库

java中使用jdbc连接sqlserver数据库步骤&#xff1a;1。JDBC连接SQLServer的驱动安装,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证)将JDBC解压缩到任意位置,比如解压到C盘programfiles下面,并在安装目录里找到sqljdbc。jar文件,得到其路径开始配置…

浅谈JSONP

这是我在13年初写的文章&#xff0c;当时懵懵懂懂写下了自己对JSONP的理解。 文章原文 博客 欢迎订阅 提到JSONP&#xff0c;我当时在网上找了无数帖子也没有看懂它。那些文章大同小异&#xff0c;都是讲到JSONP原理以后就戛然而止&#xff0c;把我们这些初学者搞得云里雾里。所…

Asp.Net Core 7 preview 4 重磅新特性--限流

前言限流是应对流量暴增或某些用户恶意攻击等场景的重要手段之一&#xff0c;然而微软官方从未支持这一重要特性&#xff0c;AspNetCoreRateLimit这一第三方库限流库一般作为首选使用&#xff0c;然而其配置参数过于繁多&#xff0c;对使用者造成较大的学习成本。令人高兴的是&…

【计算机图形学】实验:C#.net环境下采用GDI+图形特技处理案例教程

一、实验目的 掌握在.net环境下对图形特技的处理方法。 二、实验准备 学习在.net环境下读取图像文件、改变颜色等基本知识。 三、实验内容 在.net环境中实现对图像的灰度化处理、柔化和锐化、底片滤镜、淡入淡出以及浮雕、油画和木刻等艺术效果。 四、实验过程及步骤 (…

Windows之在终端打开当前目录的命令

1 问题 Windows在终端打开当前目录的命令 2 命令如下 1)、通过start命令 start . 2)、通过explorer命令 explorer .3 linux终端打开当前目录命令如下 nautilus . 4 mac终端打开当前目录命令如下 open .

孙钟秀-《 操作系统教程 》(第4版)注释(稿)

http://www.valleytalk.org/2014/12/30/%E5%AD%99%E9%92%9F%E7%A7%80-%E3%80%82%E3%80%8A-%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%95%99%E7%A8%8B-%E3%80%8B%EF%BC%88%E7%AC%AC4%E7%89%88%EF%BC%89%E6%B3%A8%E9%87%8A%EF%BC%88%E7%A8%BF/转载于:https://www.cnblogs.com/zen…

Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分

如果开发的应用用户较多&#xff0c;那么必须保证应用在多个版本不同的设备上能够正确的运行。这就要求对各个版本比较熟悉&#xff0c;知道在什么版本中加入了什么新的功能或特性。但是Android的版本太多了&#xff0c;是个令人头疼的问题。如果想了解Android的版本差异&#…

mysql交叉编译 cmake_CMake交叉编译配置

很多时候&#xff0c;我们在开发的时候是面对嵌入式平台&#xff0c;因此由于资源的限制需要用到相关的交叉编译。即在你host宿主机上要生成target目标机的程序。里面牵扯到相关头文件的切换和编译器的选择以及环境变量的改变等&#xff0c;我今天仅仅简单介绍下相关CMake在面对…

[python opencv 计算机视觉零基础到实战] 一 opencv的helloworld

前置条件 说明&#xff1a;本系列opencv实战教程将从基础到实战&#xff0c;若只是简单学习完python也可以通过该教程完成一般的机器学习编程&#xff1b;文中将会对很多python的基础内容进行讲解&#xff0c;但由于文章定位的原因将不会赘述过多的基础内容&#xff0c;基础内…

Android之用setColorFilter在ImageView上面覆盖一层灰色的图层

1 问题 在图片上面覆盖一层灰色的图层 2 解决办法 比如点击图片覆盖黑色 imageView.setColorFilter(ContextCompat.getColor(context, R.color.picture_color_black_80), PorterDuff.Mode.SRC_ATOP); 然后点击图片还原回来 imageView.setColorFilter(ContextCompat.getCol…

【计算机图形学】实验:VB.net环境下的综合绘图与交互技术案例教程

一、实验目的 掌握在.net环境下的绘图软件界面设计与交互技术。 二、实验准备 学习在.net环境下的界面设计的一般原理与交互技术等基本知识。 三、实验内容 将前7个实验内容集成到一个界面下&#xff0c;如直线段、圆、矩形与曲线的绘制填充&#xff0c;以及对图像的处理&…

IE8 兼容background-size的解决办法

.bgpic { background-image:url(); background-size:cover; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src,sizingMethodscale); } 注意progid里面的src路径是绝对路径或是相对于页面的路径。​ div class"bgpic"style"width:200px;height:1…

从头开始敲代码之《从BaseApplication/Activity开始》

转载请注明出处王亟亟的大牛之路 其安易持&#xff0c;其未兆易谋&#xff1b;其脆易泮&#xff0c;其微易散。为之于未有&#xff0c;治之于未乱。合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于垒土&#xff1b;千里之行&#xff0c;始于足下。为者败之…

查缺补漏系统学习 EF Core 6 - 原始 SQL 查询

推荐关注「码侠江湖」加星标&#xff0c;时刻不忘江湖事这是 EF Core 系列的第五篇文章&#xff0c;上一篇文章盘点了 EF Core 中的几种数据查询方式。但是有有时候&#xff0c;我们可能无法用标准的 LINQ 方法完成查询任务。或者编译后的 LINQ 查询&#xff0c;没有我们想要的…

【python opencv 计算机视觉零基础到实战】二、 opencv文件格式与摄像头读取

一、学习目标 了解图片的结构属性了解如何捕获视频了解waitkey的使用方法 目录 [python opencv 计算机视觉零基础到实战] 一、opencv的helloworld [【python opencv 计算机视觉零基础到实战】二、 opencv文件格式与摄像头读取] 一、opencv的helloworld [[python opencv 计…

python冒泡排序代码完整_用Python写冒泡排序代码

python代码实现冒泡排序代码其实很简单&#xff0c;具体代码如下所示&#xff1a;代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 def bubbleSort(numbers):for j in xrange(len(numbers),-1,-1):for i in xra…

[C++]VS2005(VC8) 使用 Boost

測試環境&#xff1a;[1] Widnows XP Professional[2] Visual Studio 2005 Team Studio(VC8.0)[3] WinCvs 1.31. 下載 Boost透過 CVS 下載最新版 cvs -d:pserver:anonymousboost.cvs.sourceforge.net:/cvsroot/boost login [詢問密碼時&#xff0c;直接輸入 Enter 略過] cvs …

Android之编译提示error: Apostrophe not preceded by

1 问题 as编译提示错误如下 error: Apostrophe not preceded by 2 原因 字符串资源文件里面value包含一个单引号 <string name"key">Don t ....</string> 2 解决办法 1) 加双引号 <string name"key">"Don t ...."</s…

【ArcObject开发】实验:ArcGIS Desktop开发方式入门基础教程

一、实验目的: 熟练掌握ArcGIS Desktop开发方式。 二、实验准备: 学习ArcGIS Desktop定制步骤;熟悉VBA编程环境、Active DLL和Active EXE开发一般过程。 三、实验内容: (1)描述在ArcGIS Desktop环境下定制窗体界面的一般步骤;(2)在VBA环境下编写宏,实现图层视图…

C# WPF后台动态添加控件(经典)

概述在Winform中从后台添加控件相对比较容易&#xff0c;但是在WPF中&#xff0c;我们知道界面是通过XAML编写的&#xff0c;如何把后台写好的控件动态添加到前台呢&#xff1f;本节举例介绍这个问题。这里要用到UniformGrid布局&#xff0c;UniformGrid 是一种横向的网格分割、…