[c++笔记]class,构造函数

1. class:即c++的类,与C语言的结构体相近,与结构体相比较,其成员不只有变量,还可以为函数,即类的成员函数,成员函数与普通函数区别在于其作用范围取决于类[1];通过类定义的内容叫做对象,详情见后续程序.

class类的程序:

#include <iostream>
using namespace std;class Room {public:double length;double width;double height;double Area(){return length * width;}double Volume() {return length * width * height;}
};int main() {Room room1;room1.length = 10.1;room1.width = 9.9;room1.height = 2.91;cout << "Ares of room1=" << room1.Area() << endl;cout << "Volume of room1=" << room1.Volume() << endl;return 0;
}

2.构造函数的程序:

#include <iostream>
using namespace std;class Student {
public:double height;const char* name;Student();     //声明构造函数Student(double, const char*);
};Student:: Student() {              //Student:: 用于指示此构造函数属于的类this-> height = 171.1;     //此函数没有参数,说明是一个默认构造函数,当创建一个新的Student对象时,会被自动调用this-> name = "xiaoxia";cout << "调用默认构造函数" << endl;}Student::Student(double height, const char* name) {        //构造函数在类外面,必须在构造函数前面加上类名和作用域解析运算符(::)this-> height =height ;this-> name = name;cout << "调用传递参数的函数" << endl;}int main() {Student student1;//使用类Student定义一个对象student1cout << student1.height << " " << student1.name << endl;Student student2(171.9, "xiaoxichen");cout << student2.height << " " << student2.name << endl;return 0;
}

构造函数:主要用于初始化对象,没有返回值,名字与类同名,当创建类的对象时,会自动调用构造函数进行初始化;

注:类里面必须有构造函数,如果没有手动添加构造函数,则编译器会生成一个无参构造函数,该构造函数为空,不对类数据成员进行初始化操作,当创建该类的对象时,系统会使用这个默认的构造函数进行对象的初始化.

2.1构造函数也可以写到类里面:

#include <iostream>
using namespace std;class Student {
public:double height;const char* name;Student() {              //Student:: 用于指示此构造函数属于的类this-> height = 171.1;     //此函数没有参数,说明是一个默认构造函数,当创建一个新的Student对象时,会被自动调用this-> name = "xiaoxia";cout << "调用默认构造函数" << endl;}Student(double height, const char* name) {        //构造函数在类外面,必须在构造函数前面加上类名和作用域解析运算符(::)this-> height =height ;this-> name = name;cout << "调用传递参数的函数" << endl;}
};int main() {Student student1;//cout << student1.height << " " << student1.name << endl;Student student2(171.9, "xiaoxichen");cout << student2.height << " " << student2.name << endl;return 0;
}

参考:

[1]C++类的成员变量和成员函数详解

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

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

相关文章

Umi3 创建,配置环境,路由传参(代码示例)

目录 创建项目 配置环境 创建脚手架 项目结构及其目录、 路由 配置路由 嵌套路由 编程式导航和声明式导航 声明式导航 编程式导航 约定式路由 路由传参 query传参&#xff08;问号&#xff09; 接收参数 params传参&#xff08;动态传参&#xff09; 接收参数 创…

精品量化公式——“筹码动态”,筹码动态改进版,增加了三个买点信号标识

不多说&#xff0c;直接上效果如图&#xff1a; ► 日线表现 代码评估 技术指标代码评估&#xff1a; 散筹估算: 使用EMA&#xff08;指数移动平均&#xff09;方法计算(WINNER(C*1.1)-WINNER(C*0.9))*70的3日均线&#xff0c;用黄色粗线表示。这是用于估算市场中散户投资者的…

【我与Java的成长记】之多态,重载与重写详解

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 Java笔记传送门 &#x1f31f; 个人主页&#xff1a;古德猫宁- &#x1f308; 信念如阳光&#xff0c;照亮前行的每一步 文章目录 系列文章目录&#x1f308; *信念如阳光&#xff0c;照亮前行的每一步* 前言一、多态的概…

gitlab 部署项目新分支

公司代码管理平台新切换到gitlab下&#xff0c;上线发版流程随之变更 1新建分支&#xff0c;开发完成&#xff0c;提交新分支 2.去gitlab平台上找到Merge requests 3 点击右上角的New merge request select source branch 选择新建的分支 点击 compare branches and contin…

navigateTo失效-跳转不了页面解决办法!uniapp\vue

改了一个小时多的错误&#xff0c;跳转页面无论怎么样都跳转不了&#xff0c;有2个问题&#xff1a; 注意&#xff1a;uniapp的报错可以在console里检查&#xff01; 1.pages.json文件没有配置路径&#xff0c; 在pages:[ ]里面加 &#xff08;根据自己的路径进行修改 {&qu…

d2l包安装教程

目录 一、下载d2l包 1、错误的安装方法 2、正确的安装方法 二、可能会遇到的问题 1、网络超时导致下载中断 2、windows powershell激活虚拟环境时报错 一、下载d2l包 直接按照教程安装 — 动手学深度学习 2.0.0 documentation运行命令pip install d2l0.17.6安装会比较慢&…

知识笔记(八十四)———链式语句中fetchSql和force和bind用法

fetchSql&#xff1a; fetchSql用于直接返回SQL而不是执行查询&#xff0c;适用于任何的CURD操作方法。 例如&#xff1a; $result Db::table(think_user)->fetchSql(true)->find(1);输出result结果为&#xff1a; SELECT * FROM think_user where id 1 force&#…

如何实现 H5 秒开?

我在简历上写了精通 H5&#xff0c;结果面试官上来就问&#xff1a; 同学&#xff0c;你说你精通 H5 &#xff0c;那你能不能说一下怎么实现 H5 秒 由于没怎么做过性能优化&#xff0c;我只能凭着印象&#xff0c;断断续续地罗列了几点&#xff1a; 网络优化&#xff1a;http2、…

CyberRT 一个多线程并发的bug

CyberRT 一个多线程并发的bug 场景 多线程去调用cyber GlobalData中Register接口&#xff0c;比如RegisterNode、RegisterChannel、RegisterService、RegisterTaskName&#xff0c;入参必须填相同的。 都会出现coredump。 分析 比如如下test代码&#xff1a; std::vector&l…

为什么需要放行回源IP

为什么需要放行回源IP 网站以“独享模式”成功接入WAF后&#xff0c;所有网站访问请求将先经过独享引擎配置的ELB然后流转到独享引擎实例进行监控&#xff0c;经独享引擎实例过滤后再返回到源站服务器&#xff0c;流量经独享引擎实例返回源站的过程称为回源。在服务器看来&…

C++初阶类与对象(三):详解复制构造函数和运算符重载

上次介绍了构造函数和析构函数&#xff1a;C初阶类与对象&#xff08;二&#xff09;&#xff1a;详解构造函数和析构函数 今天就来接着介绍新的内容&#xff1a; 文章目录 1.拷贝构造函数1.1引入和概念1.2特性 2.赋值运算符重载2.1运算符重载2.2放在哪里2.3运算符重载示例2.3.…

C++后端笔记

C后端笔记 资源整理一、高级语言程序设计1.1 进制1.2 程序结构基本知识1.3 数据类型ASCII码命名规则变量间的赋值浮点型变量的作用字符变量常变量 const运算符 二、高级语言程序设计&#xff08;荣&#xff09; 资源整理 C后端开发学习路线及推荐学习时间 C基础知识大全 C那…

【INTEL(ALTERA)】使用Quartus出现系统错误:找不到 MSVCR120.dll

说明 由于英特尔 Quartus Prime Pro Edition 软件 23.2 及更早版本存在一个问题&#xff0c;您在启动 Questa*-英特尔 FPGA Edition 时可能会看到此系统错误。此错误是由于安装 Questa*-英特尔 FPGA 版软件时未安装 Visual Studio 2013 的 Visual C 可再发行组件包。 此问题仅…

element中表格组件的row-class-name和class-name属性的使用以及无效处理

1.这两个属性的使用&#xff0c;row-class-name用在el-table标签上&#xff0c;class-name用在el-table-column标签上。两个属性即可绑定类名也可绑定函数 <!-- 这里是绑定函数&#xff0c;也可以绑定类名 --> <el-table :data"tableData" selection-chang…

时间格式 yyyyMMdd

// 转换时间格式 yyyyMMdd export function dateFn(date) {var timenew Date(date);var year time.getFullYear() //年var month ("0" (time.getMonth() 1)).slice(-2); //月var day ("0" time.getDate()).slice(-2); //日var mydate year month …

DB107-ASEMI插件小方桥DB107

编辑&#xff1a;ll DB107-ASEMI插件小方桥DB107 型号&#xff1a;DB107 品牌&#xff1a;ASEMI 正向电流&#xff08;Id&#xff09;&#xff1a;1A 反向耐压&#xff08;VRRM&#xff09;&#xff1a;1000V 正向浪涌电流&#xff1a;50A 正向电压&#xff08;VF&…

Linux指令(二)

1.指令&#xff1a;cd ~ 该指令表示进入家目录。 那么你可能会问了&#xff0c;什么是家目录呢&#xff1f; 定义&#xff1a;家目录&#xff0c;又叫主目录。实际上是指用户所在的根目录&#xff0c;例如&#xff1a;在windows系统下&#xff0c;我们的用户目录就是家目录&…

1.7 面试经典150题 - H指数

H指数 给你一个整数数组 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义&#xff1a;h 代表“高引用次数” &#xff0c;一名科研人员的 h 指数 是指他&#xff08;她&#xff09;…

java基础:求数组的最值

方法一&#xff1a;顺序查找 先假设数组第一个元素为最值&#xff0c;然后和数组里的数按顺序进行比较得出最值&#xff0c;所以叫顺序查找。 代码如下 package idea;public class arr_int {public static void main(String[] args) { // 初始化一个数组int[] arr {12…

OpenGL Assimp加载各类型模型(.obj、.fbx、.glb、.3ds)

1.简介 本博客以.glb格式为例&#xff0c;加载glb格式的3d模型&#xff0c;网上找了一圈&#xff0c;基本上都是根据OpenGL官方示例&#xff0c;加载.obj格式的3d模型。 下面以.obj和.glb格式的3D模型简单介绍一下。 常见的.obj格式的3D模型如下所示&#xff1a;纹理都已经被…