c++类和对象(三)日期类

embedded/2024/9/25 23:21:04/

类和对象

  • 一.拷贝构造函数定义
  • 二.拷贝构造函数特征
  • 三.const成员函数权限
    • 权限的缩小
    • 权限的缩放大
  • 四.隐式类型转换

一.拷贝构造函数定义

拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存
在的类类型对象创建新对象时由编译器自动调用。

二.拷贝构造函数特征

拷贝构造函数也是特殊的成员函数,其特征如下:

  1. 拷贝构造函数是构造函数的一个重载形式。
  2. 拷贝构造函数的参数只有一个且必须是类类型对象的引用,使用传值方式编译器直接报错,因为会引发无穷递归调用。
class Date
{
public:Date(int year = 1900, int month = 1, int day = 1){_year = year;_month = month;_day = day;}// Date(const Date& d)   // 正确写法Date(const Date& d)   // 错误写法:编译报错,会引发无穷递归{_year = d._year;_month = d._month;_day = d._day;}
private:int _year;int _month;int _day;
};
int main()
{Date d1;Date d2(d1);return 0;
}

三.const成员函数权限

权限可以平移,也可以缩小,但是不可以放大

下面来看一段代码

权限的缩小


void func(int& x)
{}int main()
{int a = 0;int& b = a;b++;func(a);// 权限的缩小 const int& c = a;//a可读可写  c子读return 0;
}

权限的缩放大

在这里插入图片描述
这里报错:非常量应用的初始值必须为左值
但是如果在func函数的参数加上const编译器就不会报错

在这里插入图片描述

void func(const int& x)
{}int main()
{int a = 0;int& b = a;b++;func(a);// 权限的缩小 const int& c = a;//a可读可写  c子读return 0;
}

看下面一段代码

void func(const int& x)
{}int main()
{int a = 0;int& b = a;b++;func(a);const int x = 10;const int& y = x;const int& z = 10;const int& m = a + x;return 0;
}

此时代码是编译通过的
在这里插入图片描述

如果不加const就会报错
在这里插入图片描述
这里说明原因:

z是常量的别名,要加const
a+x结果是一个零是变量 零时变量具有长性 要加const

四.隐式类型转换

int main()
{double d = 1.1;int i = d;int& ri = d;const int& ri = d;int i1 = 97;char ch = 'a';if (i1 == ch){cout << "相等" << endl;}return 0;
}

在这里插入图片描述

因为rid的类型不同所以会报错

double d = 1.1; int i = d;

double 和 int之间为什么可以直接使用,就是应为隐式类型转换


http://www.ppmy.cn/embedded/54347.html

相关文章

大数据开发如何管理项目

在面试的时候总是 会问起项目&#xff0c;那在大数据开发的实际工作中&#xff0c;如何做好一个项目呢&#xff1f; 目录 1. 需求分析与项目规划1.1 需求收集与梳理1.2 可行性分析1.3 项目章程与计划 2. 数据准备与处理2.1 数据源接入2.2 数据仓库建设2.3 数据质量管理 3. 系统…

如何高效安全的开展HPC数据传输,保护数据安全?

高性能计算&#xff08;HPC&#xff09;在多个行业和领域中都有广泛的应用&#xff0c;像科学研究机构、芯片IC设计企业、金融、生物制药、能源、航天航空等。HPC&#xff08;高性能计算&#xff09;环境中的数据传输是一个关键环节&#xff0c;它涉及到将数据快速、安全地在不…

内容安全复习 8 - 视觉内容伪造与检测

文章目录 研究背景内容伪造方法虚假人脸生成人脸替换属性编辑表情重演跨模态人脸编辑 伪造检测方法眨眼检测交互式人脸活体检测一些了解方法挑战 研究背景 图像内容篡改造成新闻报道的偏颇易导致社会和公共秩序的不安&#xff0c;对公共安全产生不良影响。 造成的影响&#x…

Z变换详细介绍

Z变换是一种强有力的数学工具&#xff0c;用于分析和设计离散时间信号和系统。它是傅里叶变换和拉普拉斯变换在离散时间域的推广&#xff0c;广泛应用于数字信号处理、控制系统等领域。 定义 离散时间信号 x [ n ] x[n] x[n]的Z变换定义为&#xff1a; X ( z ) ∑ n − ∞…

Kubernetes面试整理-RBAC(基于角色的访问控制) 的理解和配置方法

在 Kubernetes 中,RBAC(基于角色的访问控制,Role-Based Access Control)是一种控制访问权限的机制,用于管理用户和服务账户对集群资源的访问。RBAC 通过定义角色和角色绑定来控制谁可以对哪些资源执行哪些操作。 核心概念 1. Role 和 ClusterRole: ● Role:定义在特定命…

安利一款AI驱动的可视化大屏产品,支持一键导出源码

数据可视化作为一种直观呈现信息的方式&#xff0c;在各个领域都具有关键作用&#xff0c;能够帮助我们更好地理解和分析数据。今天和大家分享一款我体验了很久的可视化大屏制作工具——山河鉴数据可视化源码工具。 我们使用它可以轻松通过拖拽式来搭建可视化大屏&#xff0c;并…

C++输出彩色方块

1.使用方法 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xab); ———————————————————————————————————————— 0 黑色 1 蓝色 2 绿色 3 湖蓝色 4 红色 5 紫色 6 黄色 7 白色 8 灰色 9 …

snowflake 不再是个数据仓库公司了

标题先上结论&#xff0c;为啥这么认为&#xff0c;且听接下来道来。 snowflake 非常成功&#xff0c;开创了云数仓先河&#xff0c;至今在数仓架构上也是相对比较先进的&#xff0c;国内一堆模仿的公司&#xff0c;传统上我们会认为 snowflake 肯定是一家数据仓库公司。不过最…