4月25日 C++day3

#include <iostream>
using namespace std;class Person
{const string name;int age;char sex;
public:Person():name("lisi"){cout << "Person无参构造" << endl;}Person(string name,int age,char sex):name(name),age(age),sex(sex){cout << "Person有参构造" << endl;}void show(){cout <<"person的show:"<< name << age << sex <<endl;}Person(const Person &other):name(other.name){this->age = other.age;this->sex=other.sex;cout << "Person的拷贝构造函数" << endl;}Person &operator=(const Person &other){if(&other!=this){string name=other.name;this->age=other.age;this->sex=other.sex;cout << "Person的拷贝赋值函数" << endl;}return *this;}
};
class Stu
{Person p1;double *pd;
public:Stu():pd(new double){cout << "Stu的无参构造" << endl;}Stu(string name,int age,char sex,double score):p1(name,age,sex),pd(new double(score)){cout << "Stu有参构造" << endl;}void show(){p1.show();cout << *pd <<endl;}Stu(const Stu &other):p1(other.p1){this->pd=other.pd;}Stu &operator=(const Stu &other){if(&other!=this){this->p1=other.p1;*(this->pd)=*(other.pd);cout << "Stu的拷贝赋值函数" << endl;}return *this;}
};
int main()
{Person p2("wangwu",20,'n');p2.show();Person p3=p2;p3.show();Person p4;p4=p2;p4.show();Stu s2("zhangsan",20,'n',99.2);s2.show();Stu s3=s2;s3.show();Stu s4;s4=s2;s4.show();return 0;
}
#include <iostream>
#include <cstring>
using namespace std;using namespace std;
class myString
{private:char *str;          //变化c风格的字符串int size;            //记录字符串的实际长度public://无参构造myString() : str(new char), size(0){str[0] = '\0';cout<<"无参构造"<<endl;}//有参构造myString(const char* s){size = strlen(s);str = new char[size + 1];strcpy(str, s);cout<<"有参构造"<<endl;}//拷贝构造myString(const myString &other){size = other.size;str = new char[size + 1];strcpy(str, other.str);cout<<"拷贝构造函数"<<endl;}//拷贝赋值函数myString& operator=(const myString &other){if (this != &other) {size = other.size;str = new char[size + 1];strcpy(str, other.str);cout<<"拷贝赋值函数"<<endl;}return *this;}//析构函数~myString(){delete[] str;cout<<"析构"<<endl;}//判空函数void empty(){if(size == 0){cout<<"空"<<endl;}else{cout<<"非空"<<endl;}}//size函数void mysize(){cout<<"size = "<<size<<endl;}//c_str函数char* c_str(){return str;}//at函数char &at(int pos){if (pos < 0 || pos >= size) {cout<<"位置不合法"<<endl;}return str[pos];}
};
int main()
{myString s1("hello");myString s2 = s1;myString s3;cout<<s1.at(4)<<endl;cout<<s1.c_str()<<endl;cout<<s2.at(4)<<endl;cout<<s2.c_str()<<endl;s2.empty();s2.mysize();return 0;
}

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

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

相关文章

数字电路-5路呼叫显示和8路抢答器

本内容涉及两个电路&#xff0c;分别为5路呼叫显示电路和8路抢答器电路&#xff0c;包含Multisim仿真原文件&#xff0c;为掌握FPGA做个铺垫。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易&#xff01; 目录&#xff1a; 一、5路呼叫显…

排序算法大总结

引言 排序算法&#xff08;sorting algorithm&#xff09;是用于对一组数据按照特定顺序进行排列。排序算法有着广泛的应用&#xff0c;因为有序数据通常能够被更高效地查找、分析和处理。 如图 1-1 所示&#xff0c;排序算法中的数据类型可以是整数、浮点数、字符或字符串等…

中伟视界:矿山智能管控平台关键功能介绍,AI算法、告警通知、问题解决

矿山智能管控平台的关键功能介绍如下&#xff1a; 1.1. 主界面功能介绍 主界面分为六大区域&#xff0c;分别是设备列表、重点区域、功能区、告警列表、菜单区等&#xff0c;分别对应不同的功能和操作。 1.2. 平台功能 平台包含11条特色功能&#xff0c;分别为&#xff1a…

Android 11 裁剪系统显示区域(适配异形屏)

概述 在显示技术中&#xff0c;"OverScan"&#xff08;超扫描&#xff09;是一种调整显示图像边界的技术。通常情况下&#xff0c;OverScan 会在显示屏的边缘周围裁剪一小部分图像。这种裁剪是为了确保显示内容在屏幕上的完整可见性&#xff0c;尤其是在老式电视或投…

设备能源数据采集新篇章

在当今这个信息化、智能化的时代&#xff0c;设备能源数据的采集已经成为企业高效运营、绿色发展的重要基石。而今天&#xff0c;我们要向大家介绍的就是一款颠覆传统、引领未来的设备能源数据采集神器——HiWoo Box网关&#xff01; 一、HiWoo Box网关&#xff1a;一站式解决…

广州华夏家博会盛大开幕,家居建材行业迎来新篇章

5月3日&#xff0c;备受瞩目的广州华夏家博会在广州琶洲会展中心盛大开幕。本次家博会汇聚了众多家居建材行业的知名品牌和优质产品&#xff0c;吸引了来自全国各地的专业观众和消费者前来参观。 作为家居建材行业的盛会&#xff0c;广州华夏家博会不仅是一个展示最新产品和技术…

Unity Timeline学习笔记(4) - 自定义轨道OnCreateClip和CreateTrackMixer用法上的区分

前面我们第二篇文章Unity Timeline学习笔记(2) - PlayableTrack是一个初步的PlayableTrack使用方法&#xff0c;有时候可能会个性化定制专属轨道。 OnCreateClip的例子 下面我们做一个例子&#xff1a; 首先是轨道 //FeatureTrack.cs using System.ComponentModel; using U…

AutoMQ 系统测试体系揭秘

01 前言 Apache Kafka 有着比较完备的自测体系。除了常规的单元测试和集成测试以外&#xff0c;Apache Kafka 还有着 1000 的“系统集成和性能测试”&#xff08;以下简称系统测试&#xff09;。系统测试会拉起一套真实的 Kafka 集群&#xff0c;并模拟用户使用 Kafka 集群的方…

《XXL_job技术文档》-分布式任务调度框架-双方式部署-tar.gz安装/docker安装

阿丹&#xff1a; 作为任务调度的使用&#xff0c;xxl_job是经常使用的&#xff0c;可以帮助程序员或者其他业务的定时任务变的可控。但是很多教程都是通过压缩包来进行运行和部署的&#xff0c;但是现在更多的都是将模块容器化。本文章一次性整理。 XXL-Job是一款开源的分布式…

计算机视觉大项目(1)-水果分级系统

项目来源&#xff1a;河北大学计算机视觉课程-杨老师. 一共有四个标题&#xff0c;本篇博客只完成前两问。 目录 实验目的: 实验内容&#xff1a; 实验步骤&#xff1a; 1.水果图像的分割 >掩膜图像Mask 是什么&#xff1f; >改进:去除反光部分的影响 2&#xf…

中颖51芯片学习10. Touch Key触摸按键功能

中颖51芯片学习10. Touch Key触摸按键功能 一、SH79F9476 资源介绍1. 特性2. 系统框图&#xff1a;3.准备环境 二、准备工具三、开发步骤1. 新建项目流程&#xff08;1&#xff09;新建工程&#xff08;2&#xff09;选择芯片和封装&#xff08;3&#xff09;触摸配置按键&…

【人工智能AI书籍】TensorFlow机器学习实战指南(推荐)

今天又来给大家推荐一本人工智能方面的书籍<TensorFlow机器学习实战指南>。TensorFlow是一个开源机器学习库。本书从TensorFlow的基础开始介绍&#xff0c;涉及变量、矩阵和各种数据源。之后&#xff0c;针对使用TensorFlow线性回归技术的实践经验进行详细讲解。后续章节…