当前位置: 首页 > 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.hkea.cn/news/126807/

相关文章:

  • wordpress在线视频直播湖南正规关键词优化
  • 花木企业网站源码全网推广的方式
  • 网站开发商怎么关闭图片显示站长之家新网址
  • 灯饰如何做网站推广纯手工seo公司
  • 晋中公司做网站seo站长之家
  • 到哪里找人做网站优化seo培训班
  • 深圳网站开发哪家专业搜索到的相关信息
  • 湖北武汉网站制作引擎搜索下载
  • 做网站登录的需求分析seo点击排名工具有用吗
  • 诸暨住房和城乡建设委员会网站怎么制作网站?
  • 昆明cms建站模板视频号排名优化帝搜软件
  • 商务咨询网站源码重庆网站建设哪家好
  • 建设部网站从何时可以查询工程师证深圳全网推广服务
  • 网页制作工具的选择与网站整体风格是有关系的友情链接论坛
  • 免费商会网站模板百度推广账号
  • 玄武模板网站制作品牌关键词排名点击软件网站
  • 网站title的写法微信软文怎么写
  • 设计企业网站流程磁力引擎
  • 橙色企业网站模板域名注册购买
  • 培训建设网站线上推广产品
  • 写作网站不屏蔽全网关键词指数查询
  • wordpress手机uiseo关键词的选择步骤
  • 自己制作网页的步骤windows优化大师在哪里
  • 黑龙江企业信息系统seo推广优化外包公司
  • wordpress+增加域名赣州网站seo
  • 政府门户网站建设思路怎样优化网络
  • 厦门个人网站建设百度账户代运营
  • 企业网站开发注意什么企业网站官网
  • 网站建设开发合同书关键词怎么找出来
  • 常州微信网站建设附子seo