首页 > 编程语言 >C++需要注意的知识

C++需要注意的知识

时间:2022-10-08 16:01:00浏览次数:73  
标签:调用 const 函数 成员 知识 C++ 注意 Date 可以

1、2、3、4原文链接:https://blog.csdn.net/fjhugjkdsd/article/details/105281651

1.什么是类的6个默认成员函数?

如果一个类中什么成员都没有,简称为空类。任何一个类在我们不写成员函数的情况下,都会自动生成下面6个默认成员函数。

  1. 构造函数;
  2. 析构函数;
  3. 拷贝构造;
  4. 赋值重载;
  5. 普通对象取地址;
  6. const对象取地址。

2.拷贝构造函数的参数

拷贝构造函数的参数只有一个且必须使用引用传参,使用传值方式会引发无穷递归调用。

3.const修饰类的成员函数

const修饰的类成员函数称之为const成员函数。const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。

观察下面代码,思考下面问题。

class Date
{
public:
	void Display ()
	{
		cout << "Display ()" << endl;
		cout << "year:" << _year << endl;
		cout << "month:" << _month << endl;
		cout << "day:" << _day << endl << endl ;
	}
	void Display () const
	{
		cout << "Display () const" << endl;
		cout << "year:" << _year << endl;
		cout << "month:" << _month << endl;
		cout << "day:" << _day << endl << endl;
	}
private:
	int _year ; // 年
	int _month ; // 月
	int _day ; // 日
};

void Test ()
{
	Date d1 ;
	d1.Display ();
	const Date d2;
	d2.Display ();
}

  1. const对象可以调用非const成员函数吗?
    答:不可以,const对象为只读,不可以将对象变为可读可写。权限不可以放大。

  2. 非const对象可以调用const成员函数吗?
    答:可以,非const为可读可写,可以将对象变为只读。权限可以缩小。

  3. const成员函数内可以调用其它的非const成员函数吗?
    答:不可以,原因同上。

  4. 非const成员函数内可以调用其它的const成员函数吗?
    答:可以,原因同上。

4.取地址及const取地址操作符重载

这两个默认成员函数一般不重新定义 ,编译器默认会自动生成。

class Date
{
public:
	Date* operator&()
	{
		return this ;
	}
	const Date* operator&()const
	{
		return this ;
	}
private:
	int _year ; // 年
	int _month ; // 月
	int _day ; // 日
};

标签:调用,const,函数,成员,知识,C++,注意,Date,可以
From: https://www.cnblogs.com/hbwang1115/p/16769165.html

相关文章

  • C语言新知识点:枚举变量enum
    我们可以定义一个变量,然后进行判断inta;if(a==1){}else{}但上面的方式导致变量以数值方式表示,晦涩难懂可以考虑用宏定义#defineYes1但是当范围不同......
  • 实现企业内部知识流通?搭建企业内部Wiki
    wiki是一种协同工作平台,也就是开放的编辑系统。我们可以使用Wiki构建帮助系统、知识库系统.国内出名的公共wiki是百度百科;在这里,我将谈论企业内部的wiki。企业wiki,员工可以......
  • 企业知识分享|如何设计产品手册/产品说明书?
    企业产品手册可以展示公司的实力,赢得顾客的青睐,增加合作机会;既能展示产品的特色,又能提高销售业绩。所以小编将在本篇文章中和大家分享如何制作产品手册。产品手册一般是指由......
  • 使用G73需要注意的问题
    G73指令格式:   其中Δi是ⅹ轴退刀量,半径值,有符号,△k是z轴退刀量有符号,d是切削次数,其他参数与G71相同。   G73指令在使用过程中遇到的问题最多的是很难掌握△i、......
  • 车削高锰钢时需要注意什么?
    锰质量分数为11%-18%的钢称为高锰钢。经过水韧处理的高锰钢,其组织为奥氏体,可以得到较高的塑性和冲击韧度。当它受到外来压力和冲击载荷后,产生很大的塑性变形和硬化现象,同时......
  • 车削高强度钢和超高强度钢需要注意什么?
    高强度钢和超高强度钢是含一定合金量的结构钢,它们的原始强度和硬度并不太高,但经过调质处理(中温回火)后,可获得很高的强度,最高可达1960MPa,硬度一般在35~50HRC。它主要用于制造......
  • 数控加工中需要注意的29个问题
    1.对切削温度的影响:切削速度,进给率,背吃刀量;对切削力的影响:背吃刀量,进给率,切削速度;对刀具耐用度的影响:切削速度,进给率,背吃刀量。2.当背吃刀量增大一倍时,切削力增大一倍;当进给......
  • 车削冷硬铸铁和耐磨合金铸铁需要注意什么?
    冷硬铸铁和耐磨合金铸铁是生产中常用的耐磨零件的材料。冷硬铸铁也叫激冷铸铁,其特点是表层发生白口化,硬度高达50HRC以上,使耐磨性大大提高,其心部仍保持硬度较低的灰口组织,以......
  • JSP快速上手与MVC模式和三层架构的知识点总结+综合案例
    阅读提示:说明由于JSP实在是太难读难写复杂占资源难调试不分离了,拉跨!(节目效果哈,勿喷),作为一种有(ji)更(hu)好(jiu)的(yao)上(bei)位(tao)替(tai)代(le)的技术,本着为了体现新技......
  • C++判断文件是否存在的方法汇总
    C++判断文件是否存在的方法汇总1.使用boost判断文件是否存在std::stringfile_path="file_name";if(!boost::filesystem::exists(file_path)){std::cout<<......