c++中赋值运算符重载
#include<iostream>
#include <stdio.h>
using namespace std;
class string1
{
private:char *ptr;public:string1(char *s){ptr=new char[strlen(s)+1];strcpy(ptr,s);}~string1(){delete ptr;cout<<"调用了析构函数"<<endl;}void print(){cout<<ptr<<endl;}string1(const string1 &p){ //拷贝构造函数ptr=new char[strlen(p.ptr)+1];strcpy(ptr,p.ptr);cout<<"调用了拷贝构造函数"<<endl;}string1 &operator=(const string1 & s){if(this==&s) return *this;delete ptr;ptr=new char[strlen(s.ptr)+1];strcpy(ptr,s.ptr);return *this; /* 如果返回的不是引用就会调用拷贝构造函数 如果没有自己定义拷贝构造函数,会出问题加上拷贝构造函数的话也可以实现连续赋值的情况,不过中间会调用两次析构函数*/}
};
int main()
{{string1 p1=("book");string1 p2("pen");string1 p3("pen");p3=p2=p1;cout<<"p2";p2.print();cout<<"p1:";p1.print();cout<<"P3";p3.print();}getchar();return 0;
}
c++中赋值运算符重载相关推荐
- 类中赋值运算符重载函数
声明一个字符串类,为这个类型添加赋值运算符 class MyString { public://构造函数MyString(char* pData = NULL);//构造函数MyString(cons ...
- 在c++语言中赋值运算符,C++语言— 类中的赋值运算符重载
赋值运算符重载 赋值运算符的重载在这几个默认的成员函数中的位置也算是举足轻重的,它也是不好理解的一个, 下 面是我自己写的一个复数类,这里面会将赋值运算符重载踏踏实实的过完. 赋值运算符的重载的基本格 ...
- c++中的赋值运算符重载=(默认成员函数)
目录 赋值运算符重载的概念 赋值运算符重载的特性 赋值运算符重载的概念 #include<iostream> using namespace std;class Data { public ...
- C++中运算符重载需要遵循的规则
一.C++中运算符重载需要遵循的规则 1.并不是所有的运算符都可以重载.能够重载的运算符包括: + - * / % ^ & | ~ ! = < > += -= *= /= %= ^ ...
- 派生类的赋值运算符重载【C++继承】
派生类的赋值符重载 情况分析 父类和子类都使用系统默认提供的赋值运算符重载 父类自实现赋值运算符重载,子类使用系统默认提供的赋值运算符重载. 父类使用系统默认提供的赋值运算符重载,子类自实现赋值运算符 ...
- C++赋值运算符重载【C++赋值运算符重载】
赋值运算符重载 说明 语法 特性 自实现存在的问题 重析构 内存泄漏 自赋值 解决 小结 赋值运算符重载 说明 赋值运算符重载是用一个已经存在的对象,给另一个已经存在的对象赋值,两个对象均已创建结束后 ...
- 区分一下强制类型转换运算符重载/赋值运算符重载/对象定义的赋值
这三个名字可能很绕,看着也很不一样,但其实是三个很容易混淆的概念,并且经常在实际编程中遇到.这里拿出来比较一下. 首先是强制类型转换运算符的重载,作用是当前对象向其他类型的转换,常见的形式是 oper ...
- 浅谈深浅拷贝问题(这里只针对拷贝构造函数和赋值运算符重载)和简易srting类模拟实现
浅谈深浅拷贝问题(这里只针对拷贝构造函数和赋值运算符重载)和简易srting类模拟实现 文章目录 浅谈深浅拷贝问题(这里只针对拷贝构造函数和赋值运算符重载)和简易srting类模拟实现 一.什么是浅拷 ...
- c++类指针赋值表达式必须是可修改的左值_C++学习刷题8--复制构造函数和赋值运算符重载函数...
一.前言 本部分为C++语言刷题系列中的第8节,主要讲解这几个知识点:复制构造函数和赋值运算符重载函数.欢迎大家提出意见.指出错误或提供更好的题目! 二.知识点讲解 知识点1:复制构造函数 1.当依据 ...
最新文章
- java后ping不是内部_ping不是内部或外部命令,也不是可运行的程序解决方案
- c++ 按行读取txt文件并赋值_python操作txt文件中数据教程[3]python读取文件夹中所有txt文件并将数据转为csv文件...
- xss挖掘思路分享_XSS学习(三)挖掘思路
- 软件工艺师:专业、务实、自豪》一3.3 笔者个人所推崇的定义
- 微信小程序报Cannot read property ‘setData‘ of undefined的错误
- [AutoSAR] BSW模块的服务层,重点关注OS部分
- spark 两个rdd求交集,差集,并集
- GT540M最新驱动(windows XP 32位),安装NDIVIA安装程序无法继续解决方法
- originPro2021(7)导出图表不清晰
- 【练习】基于Vue全家桶的仿小米商城系统
- win10 右下角输入法乱跳
- 鄱.阳.湖.7月13日遥感数据汇总及共享
- Opencv remap函数
- java学习笔记(8) 第8章(下)- 面向对象编程(中级部分) - 练习题
- iPhone 12手机真实信号强度查看方法教程
- C中struct的函数的实现
- java一元二次方程求解_求JAVA解一元二次方程的程序。
- 亚马逊买家秀视频怎么上传?上传买家秀视频的作用是什么
- 视频号怎么运营,如何快速玩转微信视频号:国仁楠哥
- Verify the connector‘s configuration, identify and stop any process that‘s listening on port 80, or