首页 > 编程语言 > C++空类中有哪些成员函数?

C++空类中有哪些成员函数?

时间:2023-08-27 18:44:05浏览次数:38  
标签:const 哪些 C++ 运算符 空类 拷贝 赋值 Empty 构造函数

一共 有6个成员函数。

1.构造函数

2.拷贝构造函数

3.析构函数

4.赋值运算符

5.取址运算符

6.取值运算符const

 1 #include<iostream>
 2 using namespace  std;
 3 
 4 class Empty
 5 {
 6     Empty();  //构造函数
 7     Empty(Empty&);  //拷贝构造函数
 8     ~Empty();   //析构函数
 9 
10     Empty& operator=(Empty&); //赋值运算符
11     Empty* operator&(); //取址运算符
12     const Empty* operator&()const; //取址运算符const
13 
14 };

注意的是:只有当实际使用这些函数的时候,编译器才会去定义(实现)他们。

拷贝构造函数和赋值运算符重载有什么不同之处?

  (1)拷贝构造函数生成新的类对象,而赋值运算符不能。

  (2)由于拷贝构造函数是直接构造一个新的对象,所以在初始化这个对象之前不用检验源对象是否和新对象相同,而辅助运算符则要要检验源对象和新对象是否相同,另外赋值运算中如果原来的对象中有内存分配要先把内存释放掉。

  

标签:const,哪些,C++,运算符,空类,拷贝,赋值,Empty,构造函数
From: https://www.cnblogs.com/py369/p/17660665.html

相关文章

  • cmake学习方法+CHI独占+ctags编写+C/C++语言原子的序+单核比多核快的C代码
    cmake学习方法主要是cmake这个东西好像有点抽象,而我想要的是完完全全的控制,虽然是花里胡哨的;但是在高手看来,这些东西有点过家家,而不是真正意义上的技术,甚至经常被怼,净是花拳绣腿,不容易阅读,控制效果不好,有时候还有语法错误云云。因此我还是用的Makefile,但是想必cmake是更好的,因......
  • 业界都有哪些数据库监控工具
    本文主要介绍下数据库监控工具。业界有很多数据库监控工具,以下是一些常见的数据库监控工具及其使用的公司:Zabbix:一款开源的企业级分布式监控解决方案,支持对MySQL、Redis、MongoDB等多种数据库的监控。使用的公司包括:IBM、Nokia、Dell等。Prometheus:一款开源的监控和告警系统,支......
  • 数据库备份工具有哪些
    本文主要介绍下数据库备份工具。数据库备份工具有很多种,以下是一些常见的数据库备份工具:mysqldump:MySQL官方提供的命令行备份工具,适用于MySQL和MariaDB数据库。它可以将数据库导出为SQL文件,方便进行备份和恢复。属于逻辑备份工具。MyDumper:一款开源的MySQL备份工具,比mysqld......
  • 哪些行业都可以用高防ip
    高防IP适用于电商、金融、政府、媒资、教育、企业门户等网站类场景的DDoS攻击防护,恶意竞争对手可以通过攻击等手段让您的业务瘫痪用户无法访问,最终导致用户流失。高防ip可以防御各种游戏类的DDoS攻击,且对用户体验实时性要求较高的场景,快速发现攻击,启动清洗,保证游戏业务的安全。1、......
  • C/C++百日刷题第三天
    一、选择题1.1、如下代码输出的是什么()chara=101;intsum=200;a+=27;sum+=a;printf("%d\n",sum);A:327B:99C:328D:72题解:这题考察对常见数据结构存储的理解,容易出错在a+=27这个地方,char类型的数据存储范围为-128--127,当a+27之后会超过数据存储范围,a就变为-128,sum加......
  • 二叉树的链式存储结构 C++代码实现
    /*二叉树的链式存储结构*/#include<iostream>usingnamespacestd;/*二叉链表的定义*/typedefstructBiTNode{chardata;structBiTNode*lchild,*rchild;}BiTNode;typedefBiTNode*BiTree;//*************************************************......
  • 二叉树用顺序表实现 C++代码实现
    /*二叉树用顺序表实现*/#include<iostream>usingnamespacestd;/*完全二叉树顺序表的定义*/#defineMAX_BITREE_SIZE100typedefintSqBiTree[MAX_BITREE_SIZE];/*创建一个二叉树顺序表*/voidCreateBiTree(SqBiTree&T){inti;cout<<"输入元素个数:";......
  • 哈夫曼树及哈夫曼编码 C++代码实现
     /*哈夫曼编码*/#include<iostream>usingnamespacestd;//********************************//构造哈夫曼树//********************************/*哈夫曼树顺序表的定义*/typedefstruct{intweight;intparent,lchild,rchild;}HTNode;typedefH......
  • 稀疏矩阵的压缩存储及转置,快速转置法,C++代码实现
    /*稀疏矩阵的压缩存储及转置*/#include<iostream>usingnamespacestd;/*三元组顺序表的类型定义*/#defineitemSize100typedefstruct{introw,col;intitem;}thNode;typedefstruct{thNode*data;//data[0]不用intm,n,t;//分别表示行数、列......
  • 选择排序——简单选择排序和堆排序,C++代码实现
    #include<iostream>usingnamespacestd;typedefstruct{ intr[100+1]; intlength;}SqList;//简单选择排序voidSimpleSlectSort(SqList&L){ intmin,i,j; for(i=1;i<L.length;i++) { min=i; for(j=i+1;j<=L.length;j++) if(L.r[j]<L.r[m......