【C++ Primer Plus习题】12.1

news2024/9/20 9:28:19

大家好,这里是国中之林!
❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←

问题:

这里是引用
在这里插入图片描述

解答:
main.cpp

#include <iostream>
#include "Cow.h"
using namespace std;

int main()
{
	Cow c1;
	Cow c2("老母牛", "喝奶", 200);
	Cow c3(c2);
	c1 = c3;
	c1.ShowCow();
	cout << endl;
	c2.ShowCow();
	cout << endl;
	c3.ShowCow();
	cout << endl;
	return 0;
}

Cow.h

#pragma once
#include <iostream>
using namespace std;
class Cow
{
	char name[20];
	char* hobby;
	double weight;

public:
	Cow();
	Cow(const char*nm,const char*ho,double wt);
	Cow(const Cow &c);
	~Cow();
	Cow& operator=(const Cow& c);
	void ShowCow()const;
};


Cow.cpp

#include "Cow.h"

Cow::Cow()
{
	name[0] = '\0';
	hobby = NULL;
	weight = 0;
}
Cow::Cow(const char* nm, const char* ho, double wt)
{
	if ((strcpy_s(name, 20, nm)))cout << "复制失败原字符太长!" << endl;
	hobby = new char[strlen(ho)+1];
	strcpy_s(hobby, strlen(ho) + 1, ho);
	weight = wt;
}
Cow::Cow(const Cow&c)
{
	strcpy_s(name,20, c.name);
	hobby = new char[strlen(c.hobby) + 1];
	strcpy_s(hobby, strlen(c.hobby) + 1, c.hobby);
	weight = c.weight;
}
Cow::~Cow()
{
	delete[] hobby;
}
Cow& Cow::operator=(const Cow& c)
{
	if (this == &c)
	{
		return *this;
	}
	if (hobby)delete[] hobby;

	strcpy_s(name, 20, c.name);
	hobby = new char[strlen(c.hobby) + 1];
	strcpy_s(hobby, strlen(c.hobby) + 1, c.hobby);
	weight = c.weight;
	return *this;
}
void Cow::ShowCow()const
{
	if (hobby == NULL)
	{
		cout << "母牛的信息为空!" << endl;
		return;
	}
	cout << "母牛的名字为:" << name << endl;
	cout << "母牛的嗜好为:" << hobby << endl;
	cout << "母牛的体重为:" << weight << endl;
}

运行结果:
在这里插入图片描述

考查点:

  • 默认构造函数
    在这里插入图片描述
  • 自定义构造函数
    在这里插入图片描述
  • 拷贝构造函数
    在这里插入图片描述
  • 赋值构造函数
    在这里插入图片描述
  • 动态内存分配
    在这里插入图片描述

注意:

  • strcpy_s复制成功的返回值为0
    在这里插入图片描述

  • strlen是得到字符串不带’\0’的长度,所以我们分配内存时需要加1

    在这里插入图片描述

  • 赋值构造函数返回的是引用用于连等
    在这里插入图片描述

  • 如果对象自己赋值自己就可以直接返回.如果原来指针不为空的需要清除
    在这里插入图片描述

  • 析构函数避免内存泄漏
    在这里插入图片描述

2024年9月7日19:48:10

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

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

相关文章

空气能热泵热水器

空气能热泵热水器压缩机把低温低压气态冷媒转换成高压高温气态&#xff0c;压缩机压缩功能转化的热量为q1&#xff0c;高温高压的气态冷媒与水进行热交换&#xff0c;高压的冷媒在常温下被冷却、冷凝为液态。这过程中&#xff0c;冷媒放出热量用来加热水&#xff0c;使水升温变…

机器学习数学公式推导之降维

文章目录 降维线性降维-主成分分析 PCA损失函数SVD 与 PCoASVD 的基本形式SVD 的计算p-PCA 小结 P22 (系列五) 降维1-背景 本文参考 B站UP: shuhuai008 &#x1f339;&#x1f339; 降维 我们知道&#xff0c;解决过拟合的问题除了正则化和添加数据之外&#xff0c;降维就是最…

数据链路层与ARP协议

一.认识识以太网 "以太网" 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内 容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等; 以太网中的网线必须使用双绞线; 传输速率有 10M, 100M, 1000M 等; 以太网是当前应用…

【最新华为OD机试E卷-支持在线评测】机器人活动区域(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…

2024年【金属非金属矿山(露天矿山)安全管理人员】考试题及金属非金属矿山(露天矿山)安全管理人员最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员考试题参考答案及金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员考试试题解析是安全生产模拟考试一点通题库老师及金属非金属矿山&#xf…

Java魔板游戏软件(含代码)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

【第0007页 · 数组】数组中重复的数据(如何实现数组的原地修改)

【前言】本文以及之后的一些题解都会陆续整理到目录中&#xff0c;若想了解全部题解整理&#xff0c;请看这里&#xff1a; 第0007页 数组中重复的数据 今天&#xff0c;我们来看一个在实际工作中运用不多&#xff0c;但是对于一些算法题还是有必要的奇技淫巧——数组的原地修…

基于开源链动 2 + 1 模式、AI 智能名片与 S2B2C 商城小程序的用户忠诚度计划

摘要&#xff1a;本文深入探讨了在商业环境中执行用户忠诚度计划的创新途径。通过整合开源链动 2 1 模式、AI 智能名片以及 S2B2C 商城小程序等先进元素&#xff0c;从提供福利、解决问题和创造赚钱机会三个核心方面展开详细阐述。研究表明&#xff0c;这些新技术和新模式的有…

LLM大模型:将爬虫与大语言模型结合

摘要 Web自动化是一种重要技术&#xff0c;通过自动化常见的Web操作来完成复杂的Web任务&#xff0c;可以提高运营效率并减少手动操作的需要。 传统的实现方式&#xff0c;比如包装器&#xff0c;当面对新的网站时&#xff0c;面临着适应性和可扩展性的限制。 另一方面&…

国内短剧系统怎么搭建以及都需要那些资质?

聊到国内短剧&#xff0c;相信大家都不陌生&#xff0c;在各大短视频平台可谓是火的一批&#xff0c;您或许有想加入进来的想法&#xff0c;或是已经有规划还未实现的&#xff0c;请停下脚步&#xff0c;耐心看完该文章&#xff0c;相信一定会对你有所帮助的。本文介绍短剧平台…

C语言中结构体struct和联合体union的区别

C语言 文章目录 C语言前言一、什么是结构体二、什么是联合体三、结构体和联合体的区别 前言 一、什么是结构体 在C语言中&#xff0c;结构体指的是一种数据结构&#xff0c;是C语言中聚合数据类型的一类。结构体可以被声明为变量、指针或数组等&#xff0c;用以实现较复杂的数…

单调栈的实现

这是C算法基础-数据结构专栏的第二十四篇文章&#xff0c;专栏详情请见此处。 引入 单调栈就是满足单调性的栈结构&#xff0c;它最经典的应用就是给定一个序列&#xff0c;找出每个数左边离它最近的比它大/小的数。 下面我们就来讲单调栈的实现。 定义 单调栈就是满足单调性…

SnapGene 5.3.1下载安装教程百度网盘分享链接地址

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 SnapGene介绍 SnapGene 5.3.1下载安装教程百度网盘分享链接地址&#xff0c;SnapGene 是一款由美国公司开发&#xff08;后被收购&#xff09;的分子生物学软件&#xff0c;…

Deepspeed框架学习笔记

DeepSpeed 是由 Microsoft 开发的深度学习优化库,与PyTorch/TensorFlow等这种通用的深度学习框架不同的是,它是一个专门用于优化和加速大规模深度学习训练的工具,尤其是在处理大模型和分布式训练时表现出色。它不是一个独立的深度学习框架,而是依赖 PyTorch 等框架,扩展了…

Vue 向标签中传入 this

我曾经问过 chatgpt 这个问题&#xff0c;chatgpt 说不行&#xff01; 但是&#xff0c;chatgpt 说的就算吗&#xff1f; 来试试吧&#xff1a; https://andi.cn/page/621733.html 当然是可以的&#xff01;

apk反编译修改教程系列-----修改apk 解除软件限制功能 实例操作步骤解析_6【二十五】

目前很多软件都需要票票才可以使用完全的功能。纯免费的功能性app已经很少见了。 今天继续以一款app为大家来演示如何去除软件的限制功能。教程的目的主要是学习反编译的基础修改方法,了解app的修改步骤以及基础的入门修改常识。每个使用修改方法不一定适用于所有app。只是给你…

springboot、flowable 生成图片发布到Docker乱码问题

flowable自带的方法生成图片时&#xff0c;如设置字体为宋体&#xff0c;则本地测试没有问题&#xff0c;因为windows自带宋体字体库&#xff0c;但是如果发布到Docker&#xff0c;则会出现乱码问题&#xff0c;因为大部分Docker并不包含宋体字体库&#xff1b; 通过Java代码&a…

AAudio的延迟优化

AAudio | Android NDK | Android Developers

yolov8 pt转onnx

第一步&#xff1a; 安装onnx pip install --upgrade onnx 第二步&#xff1a; 将以下代码创建、拷贝到yolov8根目录下。具体代码test.py&#xff1a; from ultralytics import YOLO # Load a model model YOLO(yolov8n.pt) # load an official model # Export the mode…

Python利用pyecharts实现数据可视化

小编会持续更新知识笔记&#xff0c;如果感兴趣可以三连支持。闲来无事&#xff0c;水文一篇&#xff0c;不过上手实践一下倒还是挺好玩的&#xff0c;这一块知识说不定以后真可以尝试拿来做数据库的报表显示。 有梦别怕苦&#xff0c;想赢别喊累。 目录 前言 JSON数据格式的…