当前位置: 首页 > news >正文

哪个网站专注做微信模板网站程序前台

哪个网站专注做微信模板,网站程序前台,自己做网站能关联支付宝吗,学做蛋糕网站一.拷贝构造函数和拷贝赋值函数 1.1拷贝构造函数功能,格式 拷贝构造函数是一种特殊的构造函数,用来将一个类对象给另一个类对象初始化使用的。 1> 用一个类对象给另一个类对象初始化时,会自动调用拷贝构造函数。 2> 当一个类对作为函数的实参&…

一.拷贝构造函数和拷贝赋值函数

1.1拷贝构造函数功能,格式

拷贝构造函数是一种特殊的构造函数,用来将一个类对象给另一个类对象初始化使用的。

1> 用一个类对象给另一个类对象初始化时,会自动调用拷贝构造函数。

2> 当一个类对作为函数的实参,传递给形参的过程时,会自动调用拷贝构造函数。

3> 当一个函数返回一个类对象时,会自动调用拷贝构造函数。

类名(const 类名 &other)
{函数体内容;
}

1.2浅拷贝和深拷贝(重点)

1> 系统会提供一个默认的拷贝构造函数,如果程序员手动定义,则系统取消默认提供。

2> 系统提供的拷贝构造函数,是将一个类对象给另一个类对象初始化使用的,换句话说,就是将一个类对象的所有数据成员赋值给另一个类对象的所有数据成员。

3> 浅拷贝:系统提供的拷贝构造函数。

4> 如果类中没有指针成员,则调用系统提供的拷贝构造函数,没有问题。如果类中有指针成员,依然调用系统提供的拷贝构造函数,则会造成double free现象。

1.3拷贝构造赋值功能,格式

用一个类对象给另一个类对象进行赋值操作,会自动调用拷贝赋值函数

类名 &operator=(const 类名 &other)
{函数体内容;
}

用一个类对象给另一个类对象进行赋值操作,会自动调用拷贝赋值函数。

二.友元函数

2.1 作用和种类

作用:可以让一些函数或者类去访问另一类的私有数据成员。

种类:

1> 全局函数做友元

2> 类做友元

3> 成员函数做友元

2.2全局函数做友元

让一个全局函数访问一个类的私有数据成员。

#include <iostream>using namespace std;//封装一个房间类
class Room
{friend void goodGay(Room &r); //声明该函数是本类的好朋友,可以访问本类的私有数据成员
private:string bed_room; //卧室
public:string sitting_room; //客厅public://无参构造函数Room(){bed_room = "卧室";sitting_room = "客厅";}};//全局函数
void goodGay(Room &r)
{cout << "好基友正在访问。。" << r.sitting_room << endl;cout << "好基友正在访问。。" << r.bed_room << endl;
}int main()
{Room r;goodGay(r);return 0;
}

2.3类做友元

让一个类去访问另一个类的私有数据成员。

#include <iostream>using namespace std;//声明有这样的类
class Room;//封装好盆友的类
class GoodGay
{
private:Room *r;
public:GoodGay();void visit();
};class Room
{friend class GoodGay; //声明该类是本类的好朋友,可以访问本类的私有数据成员
private:string bed_room;
public:string sitting_room;Room(){bed_room = "卧室";sitting_room = "客厅";}
};GoodGay::GoodGay()
{r = new Room;
}
void GoodGay::visit()
{cout << "好基友的类 正在访问。。" << r->sitting_room << endl;cout << "好基友的类 正在访问。。" << r->bed_room << endl;
}int main()
{GoodGay g;g.visit();return 0;
}

2.4成员函数做友元(了解)

让一个类中的成员函数去访问另一个类的私有数据成员。

小结

1> 不要过度的使用友元,会降低或者破坏封装性。

2> 友元不具有交换性、传递性、继承性

三.常成员函数和常对象

类中的成员函数都能对数据成员做修改操作,如果设计一个函数不能对数据成员做修改,则需要用常成员函数来完成。

3.1常成员函数

常成员函数不能修改数据成员。

返回值类 函数名(形参列表)const
{函数体内容;
}

3.2常对象

常对象的数据成员不能被改变。

格式: const 类名 对象名;

1】非常对象,既可以调用非常成员函数 ,也可以调用常成员函数,优先调用非常成员函数。

2】常对象只能调用常成员函数,不能调用非常成员函数。

#include <iostream>using namespace std;class Stu
{
private:string name;int age;
public:Stu(){}Stu(string name, int age):name(name),age(age){}void show() const //常成员函数   this指针原型:Stu const * const this;{//this->age = 48;//this = nullptr;//name = "lisi";//不能对数据成员修改cout << name << "  " << age << endl;}void show() //非 常成员函数     this原型: Stu *const this;{//this->age = 48;//this = nullptr;cout << name << "  " << age << endl;}};int main()
{//Stu s1("zhangsan", 18); //非常对象const Stu s1("zhangsan", 18); //常对象s1.show();return 0;
}

3.3mutable关键字

mutable修饰的数据成员,表示该数据成员可以在常成员函数中被修改。

四.思维导图

http://www.yayakq.cn/news/118235/

相关文章:

  • 电子项目外包网站seo需要什么技术
  • 零食网站色调搭配怎麽做河南省工程信息网官网
  • 如何用dw做网站西安目前是什么风险地区
  • 刘家窑做网站中国室内设计网联盟
  • 湛江建设厅网站网站认证方式有几种
  • Wordpress博客欣赏哪里可以做网站优化
  • 美容网站模版厦门互联网公司排名
  • 网上做网站网站国际品牌的品牌策划公司
  • xuezuo网站建设html网站开发项目
  • 网站seo综合诊断关注国内国际时事
  • 简约大气网站欣赏网站防止盗图
  • 如何做公司的网站wordpress 版块
  • 广州专业网站改版方案怎么提升网站排名
  • 做暧暧视频免费视频中国网站创意设计pc
  • soso网站提交入口网站编程用什么语言好
  • 商城网站建设需求分析深圳网站建设注册
  • 评论回复网站怎么做wordpress字体路径设置
  • 电商网站业务流程郑州做网站哪家便宜
  • 佛山网站建设全方位服务织梦网站首页内容
  • 重庆建设安全员信息网站建设银行纪检监察网站
  • 网站设为首页代码河北手动网站建设商店
  • 哈尔滨网站建设报价价格网站如何做淘宝支付宝支付
  • 公司网站去哪里做东莞seo网站关键词优优化
  • 做画册好的国外网站推荐网络服务商主要包括哪些方面
  • 襄州区城乡建设局网站手机网站规划
  • 免费建网站软件系统网站总体结构
  • 娄底网站建设wyo8响应式网站设计的主页
  • 做棋牌开发的网站启航网站管理系统
  • 怎么做网站搜索芜湖网站建设
  • 网站开发招聘要求手机网站视频无法播放是怎么回事