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

C++类模板再学习

之前已经学习了C++类模板;类模板的写法和一般类的写法有很大的差别;不容易熟悉;下面再做一遍;

做一个椭圆类,成员有长轴长度和短轴长度;

// ellipse.h: interface for the ellipse class.
//
//#if !defined(AFX_ELLIPSE_H__51CD537E_D0B0_40F9_AD63_92F0502C0430__INCLUDED_)
#define AFX_ELLIPSE_H__51CD537E_D0B0_40F9_AD63_92F0502C0430__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000template<class T1, class T2>class ellipse  
{
public:ellipse(T1 a, T2 b) : older(a), lack(b){ }public:T1 getolder() const;void setolder(T1 a);T2 getlack() const;void setlack(T2 b);private:T1 older;  //长轴长度T2 lack;  //短轴长度
};template<class T1, class T2>
T1 ellipse<T1, T2>::getolder() const {return older;
}template<class T1, class T2>
void ellipse<T1, T2>::setolder(T1 a){older = a;
}template<class T1, class T2>
T2 ellipse<T1, T2>::getlack() const{return lack;
}template<class T1, class T2>
void ellipse<T1, T2>::setlack(T2 b){lack = b;
}#endif // !defined(AFX_ELLIPSE_H__51CD537E_D0B0_40F9_AD63_92F0502C0430__INCLUDED_)

类名之前先写,
    template<class T1, class T2>
T1和T2是两个成员的类型;

ellipse(T1 a, T2 b) : older(a), lack(b){ }
    构造函数,接收2个参数,一个类型为T1,一个类型为T2;把a传给成员变量older,把b传给成员变量lack;

T1 older;  //长轴长度
T2 lack;  //短轴长度
    成员变量的定义,类型写为T1、T2,T1、T2可以替换为C++的各种数据类型;

template<class T1, class T2>
    每个成员函数体之前也写上这个;

调用如下;

void CTyView::OnDraw(CDC* pDC)
{CTyDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;ellipse<int, int> e1(100, 20);str1.Format("长轴:%d,短轴:%d", e1.getolder(), e1.getlack());pDC->TextOut(50, 50, str1);ellipse<char*, char*> e2("20cm", "10cm");str1.Format("长轴:%s,短轴:%s", e2.getolder(), e2.getlack());pDC->TextOut(50, 80, str1);ellipse<double, double> e3(155.5, 97.5);str1.Format("长轴:%f,短轴:%f", e3.getolder(), e3.getlack());pDC->TextOut(50, 140, str1);
}

运行;

相关文章:

C++类模板再学习

之前已经学习了C类模板&#xff1b;类模板的写法和一般类的写法有很大的差别&#xff1b;不容易熟悉&#xff1b;下面再做一遍&#xff1b; 做一个椭圆类&#xff0c;成员有长轴长度和短轴长度&#xff1b; // ellipse.h: interface for the ellipse class. // //#if !define…...

华为终端智能家居应用方案

PLC-IoT概述 华为智能PLC-IoT工业物联网系列通信模块是基于电力线宽带载波技术的产品&#xff0c;实现数据在电力线上双向、高速、稳定的传输&#xff0c;广泛适用于电力、交通、工业制造、智能家居等领域&#xff0c;PLC-IoT通信模块包含头端和尾端两种类型&#xff0c;头端配…...

PHP下载文件

/***文件下载*param $filepath源文件路径 */function dwon_file($filepath){if(file_exists($filepath)){header(content-type:text/html;charsetutf8);header(Content-Description: File Transfer);header(Content-Type: application/octet-stream);header(Content-Dispositio…...

38基于matlab的期货预测,利用PSO优化SVM和未优化的SVM进行对比,得到实际输出和期望输出结果。

基于matlab的期货预测&#xff0c;利用PSO优化SVM和未优化的SVM进行对比&#xff0c;得到实际输出和期望输出结果。线性核函数、多项式、RBF核函数三种核函数任意可选&#xff0c;并给出均方根误差&#xff0c;相对误差等结果&#xff0c;程序已调通&#xff0c;可直接运行。 3…...

【Codeforces】 CF582D Number of Binominal Coefficients

题目链接 CF方向 Luogu方向 题目解法 看到 p α ∣ ( n k ) p^{\alpha} | \binom{n}{k} pα∣(kn​) &#xff0c;首先想到 k u m m e r kummer kummer 定理&#xff0c;那么限制即为 n − k n-k n−k 和 k k k 做加法在 p p p 进制下的进位数 ≥ α \ge \alpha ≥α …...

sql第二次上机作业

1查找借阅了ISBN为“4-6045-1023-4”的借书证号&#xff0c;读者姓名&#xff0c;专业名和借书时间 use tsgl go select Reader.Lno,Rname,Spec,Lend.Bordate FROM Reader,Lend WHERE Reader.LnoLend.Lno AND ISBN 4-6045-1023-42查找借阅了《数据库原理》一书的借阅信息&…...

辅助驾驶功能开发-功能规范篇(22)-3-L2级辅助驾驶方案功能规范

1.3.3 TLA系统功能定义 1.3.3.1 状态机 1.3.3.2 状态迁移图 1.3.3.3 功能定义 1.3.3.3.1 信号需求列表 1.3.3.3.2 系统开启关闭 1)初始化 车辆上电后,交通灯辅助系统(TLA)进行初始化,控制器需在 220ms 内发出第一帧报文,并在 3s 内完成内部自检,同时上电 3s 内不进行…...

Python基础入门例程16-NP16 发送offer(列表)

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 解答 &#xff1a; 说明&#xff1a; 描述 某公司在面试结束后&#xff0c;创建了一个依次包含字符串 Allen 和 Tom 的列表offer_list&#xff0c;作为通过面试的名单。 请你依次对列表中的名字发送类似 Allen, you…...

Web前端面试之Vue—对Vue的理解

目录 一、web发展历程 二、vue是什么 三、Vue核心特性 组件化 数据驱动 指令 四、Vue与Angular以及React的区别 一、web发展历程 Web是World Wide Web的简称&#xff0c;中文译为万维网 我们可以将它规划成如下的几个时代来进行理解 静态网页&#xff1a;最早的网页是没…...

C/C++晶晶赴约会 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C晶晶赴约会 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C晶晶赴约会 2020年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 晶晶的朋友贝贝约晶晶下周一起去看展览&#xff0…...

js 解决 H 指数

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

在JS中,var 、let 、const 总结

let是英文单词"let"的缩写。在JavaScript中&#xff0c;let 关键字用来声明一个块级作用域 的变量&#xff0c;这意味着变量仅在声明它的代码块内有效&#xff0c;超出该代码块作用域时就无法访问该变量。与var不同的是&#xff0c;let不会被提升到函数作用域或全局作…...

关于网络安全运营工作与安全建设工作的一些思考

以下内容是个人成长过程中对于网络安全运营工作的理解和思考&#xff0c;希望通过这篇文章帮助大家更好的去做安全运营体系化建设&#xff0c;开始吧&#xff01; 文章目录 一、网络安全运营是什么&#xff1f;二、网络安全运营建设阶段第一阶段&#xff1a;设备限制阶段第二阶…...

【机器学习可解释性】4.SHAP 值

机器学习可解释性 1.模型洞察的价值2.特征重要性排列3.部分依赖图4.SHAP 值5.SHAP 值 高级使用 正文 理解各自特征的预测结果&#xff1f; 介绍 您已经看到(并使用)了从机器学习模型中提取一般解释技术。但是&#xff0c;如果你想要打破模型对单个预测的工作原理? SHAP 值…...

OpenCV官方教程中文版 —— 直方图均衡化

OpenCV官方教程中文版 —— 直方图均衡化 前言一、原理二、 OpenCV 中的直方图均衡化三、 CLAHE 有限对比适应性直方图均衡化 前言 本小节我们要学习直方图均衡化的概念&#xff0c;以及如何使用它来改善图片的对比。 一、原理 想象一下如果一副图像中的大多是像素点的像素值…...

如何使用navicat图形化工具远程连接MariaDB数据库【cpolar内网穿透】

公网远程连接MariaDB数据库【cpolar内网穿透】 文章目录 公网远程连接MariaDB数据库【cpolar内网穿透】1. 配置MariaDB数据库1.1 安装MariaDB数据库1.2 测试局域网内远程连接 2. 内网穿透2.1 创建隧道映射2.2 测试随机地址公网远程访问3. 配置固定TCP端口地址3.1 保留一个固定的…...

【uniapp】uview1.x使用upload上传图片

和2.x不同的是&#xff0c;要用 action 来配置后端上传图片的接口地址&#xff1b; 再来一些配置项的命名有所不同&#xff0c;一般1.x的命名用 -&#xff0c;2.x的命名使用小驼峰&#xff1b; 1.x 的上传会自带删除时的提示框&#xff0c;2.x 没有&#xff1b; 重要的几个配置…...

基于nodejs+vue食力派网上订餐系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…...

软件测试常用的8种功能测试类型有哪些?

软件测试常用的8种功能测试类型有哪些&#xff1f; 单元测试 单元测试确保在一个段中编写的每一段代码都能产生最佳结果。开发人员在单元测试期间只看接口和确定部件。它提供了代码进展的文档&#xff0c;因为每个代码单元在继续下一个之前都经过了彻底的测试。 集成测试 至少对…...

动态规划之01背包问题

01背包问题 1. 【模板】01背包2. 分割等和子集3. 目标和4. 最后一块石头的重量 II 01背包问题是一种动态规划问题&#xff0c;用于求解在有限容量的背包中装入最大价值的物品组合。具体步骤如下&#xff1a; 定义一个二维数组dp[i][j]&#xff0c;表示从前i个物品中选择若干个…...

量子神经网络抗噪优化:经典噪声层与可微架构搜索的协同设计

1. 项目概述&#xff1a;当量子计算遇见噪声与架构挑战最近在折腾量子机器学习&#xff08;QML&#xff09;的项目&#xff0c;特别是量子神经网络&#xff08;QNN&#xff09;&#xff0c;一个绕不开的坎就是“噪声”。无论是超导、离子阱还是光子平台&#xff0c;当前的含噪声…...

Debian Bullseye定制Live ISO避坑指南:从debootstrap到xorriso的完整流程解析

Debian Bullseye定制Live ISO避坑指南&#xff1a;从debootstrap到xorriso的完整流程解析当我们需要快速部署一套标准化的Debian环境时&#xff0c;定制Live ISO无疑是最优雅的解决方案之一。不同于传统的系统安装方式&#xff0c;Live ISO允许我们将预先配置好的系统环境打包成…...

解锁 Codex 逆向能力!一键部署 JS 逆向全能 Skill

让 Codex 默认支持 JS 逆向 Codex GPT-5.4 默认对逆向和爬虫类请求比较保守&#xff0c;常见表现是只讲原则&#xff0c;不继续落地。市面上的常规做法是先发提示词&#xff0c;我这边因为每次重复发送比较麻烦&#xff0c;所以进一步封装成了 Skill&#xff0c;实际验证可行。…...

保姆级教程:用Arbe或大陆4D毫米波雷达点云数据,手把手实现Freespace检测(附Python伪代码)

毫米波雷达点云实战&#xff1a;从数据到可行驶区域的完整工程指南在自动驾驶感知系统中&#xff0c;可行驶区域检测&#xff08;Freespace&#xff09;直接决定了车辆路径规划的可行空间边界。相比激光雷达和摄像头方案&#xff0c;4D毫米波雷达凭借全天候工作能力、成本优势和…...

从数据下载到结果分析:一份给GNSS新手的GAMP+北斗PPP完整避坑指南

从零搭建北斗PPP分析环境&#xff1a;GAMP全流程实战与精度优化策略 刚接触GNSS精密单点定位的研究者常会遇到这样的困境&#xff1a;下载了数据却无法识别&#xff0c;编译通过程序却得不到收敛结果&#xff0c;最终输出的坐标误差曲线像过山车般起伏。本文将用最接地气的方式…...

STM32H5安全连接AWS IoT:基于TrustZone与Secure Manager的物联网方案

1. 项目概述&#xff1a;当STM32H5遇上AWS云如果你正在用STM32H5系列高性能MCU做物联网设备开发&#xff0c;并且想把数据安全地送到AWS云上&#xff0c;那么意法半导体最近发布的这个X-CUBE-AWS-H5扩展包&#xff0c;绝对值得你花时间深入研究。这不仅仅是一个简单的“库文件”…...

Android 指纹浏览器开发教程三:WebView、Chromium 和壳层方案怎么选

导语 Android 指纹浏览器项目走到第三步&#xff0c;往往要面对第一个“分叉路口”&#xff1a;到底用系统 WebView、自编译 Chromium&#xff0c;还是在现有内核外面再套一层壳&#xff1f; 以 EasyBR 指纹浏览器为例&#xff0c;更关键的不是单点参数&#xff0c;而是整条配置…...

西门子S7-1200 PLC编程避坑指南:从振荡电路到浮点数计算,新手最易犯的5个错误

西门子S7-1200 PLC编程实战避坑手册&#xff1a;从逻辑陷阱到数据精度的深度解析 在工业自动化领域&#xff0c;PLC编程就像是在钢丝上跳舞——一步错可能导致整个产线瘫痪。作为西门子S7-1200的资深用户&#xff0c;我见过太多初学者在相同的地方跌倒。这篇文章不会给你教科书…...

FastGithub终极教程:5分钟解决GitHub访问卡顿问题

FastGithub终极教程&#xff1a;5分钟解决GitHub访问卡顿问题 【免费下载链接】FastGithub github定制版的dns服务&#xff0c;解析访问github最快的ip 项目地址: https://gitcode.com/gh_mirrors/fa/FastGithub GitHub作为全球最大的代码托管平台&#xff0c;是每个开发…...

【Lovable开发避坑红宝书】:17个被大厂隐藏的移动端情感设计陷阱及修复代码模板

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Lovable移动端情感设计的底层认知与价值重定义 Lovable移动端情感设计并非界面动效或拟物图标的技术叠加&#xff0c;而是以人类情绪反馈回路为锚点&#xff0c;重构交互系统底层逻辑的设计范式。它要求…...