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

网站怎样做地理位置定位公司企业网站建设方案

网站怎样做地理位置定位,公司企业网站建设方案,成都网站平面设计,蚌埠网站制作公司费用拷贝构造函数 注意:访问权限是public 拷贝构造函数:类名(const 类名& 对象名){} 可以有多个参数 。 没有常引用就是普通构造函数 如果不写,编译器自己会给一个(作用仅仅是赋值,默认拷…

拷贝构造函数

注意:访问权限是public

拷贝构造函数:类名(const  类名& 对象名){}  可以有多个参数  。 没有常引用就是普通构造函数

如果不写,编译器自己会给一个(作用仅仅是赋值,默认拷贝构造函数一直都在)

#include<iostream>
using namespace std;class person {
public:int age;string name;person(int age,string name):age(age),name(name) {cout << "含参构造函数" << endl; }person(const person& p) {age = p.age;name = p.name;cout << "拷贝构造函数" << endl;}void show() {cout << "姓名:" << name << " | 年龄:" << age << endl;}~person() { cout << "析构函数" << endl; }
};int main()
{person p1(100,"xxx");person p2(p1);   //p2=p1 效果一样p1.show();p2.show();return 0;
}

函数值传递过程中会调用拷贝构造函数,因为函数形参本身就是一份赋值(值传递)

//伪代码
//注意,传引用和指针都不会激活拷贝构造
void f(person p) {p.show();
}person p;
f(p);void g(person* p){p->show();
}person *p=new person(x);  //有参就调用有参构造,否则默认构造
g(p);
delete(p);   //调用析构
p=NULL;

函数以值的方式返回对象时,可能会调用拷贝构造函数(vs会,linux不会,g++做了优化)

//伪代码
person f(person p)
{person pf(p);return pf;
}
person p(1, "sdf");
person p2 = f(p);
p2.show();//引用1
person& g()
{person p;    //每读到这句就一个默认构造return p;    //g函数结束就析构p
}
person p;
g()=p;
g().show();   //乱码//引用2
person& g(person& p)
{return p;
}
person p1;
person p2;
g(p1)=p2;
g(p1)->show();  //p2的值

注意析构函数调用时机:作用域结束(mian函数结束)

如果类重载拷贝构造函数,却没有定义默认构造函数,编译器会提供一个

class person {int age;person(int a):age(a){cout << "有参构造" << endl;}//person(const person& p) {     //注释默认构造//	cout << "默认拷贝构造" << endl;//	age = p.age;//}person(const person& p, int i){age = i;cout << "重载拷贝构造" << endl;}void show() {cout << "age:" << age << endl;}
};int main()
{person p(10);p.show();person p2(p);     //编译器又提供一个 p2.show(); return 0;
}

深浅拷贝

对空指针解引用是非法的       

#include<iostream>
using namespace std;class person {
public:int a;int* p;person(){a = 0; p = nullptr;cout << "person构造函数" << endl;}person(const person& per){a = per.a;//p = per.p;  //浅拷贝//深拷贝p = new int;    //分配内存*p = *per.p;    //拷贝数据cout << "person拷贝构造函数" << endl;}~person()   //浅拷贝问题:p1和p2指向同一个空间,p1销毁后,到p2销毁就会崩溃{delete p; p = nullptr;cout << "person析构函数" << endl;}void show(){cout << a << " " << p << " " << *p << endl;}
};int main()
{person p1;p1.a = 10; p1.p = new int(2);p1.show();person p2(p1);p2.show();return 0;
}

http://www.hkea.cn/news/406404/

相关文章:

  • 专业做相册书的网站电商网站建设制作
  • 银川网站开发公司电话东莞网
  • 环境保护局网站管理制度建设百度指数的主要功能有
  • 安装wordpress提示500错误关键词优化的策略有哪些
  • 企业网站建设公司排名深圳高端seo公司助力企业
  • 做网站套餐网站seo
  • 网站上的代码网页怎么做的下载百度软件
  • 网站功能模块建设搜狗推广
  • 网站做推广有用吗网站页面设计
  • 做简报的网站广州搜发网络科技有限公司
  • 南乐县住房和城乡建设局网站制作网站的步骤是什么
  • 金华做网站最专业的公司搜易网提供的技术服务
  • wordpress适合门户网站吗怎么营销自己的产品
  • 常用的网站类型有哪些seo优化专员编辑
  • 网站专题框架怎么做海阳seo排名
  • 手机网站代码下载黄页网站推广服务
  • 做网站前端多少钱在线bt种子
  • wordpress+模版+推荐专业网站seo推广
  • 浦项建设公司员工网站2023免费推广入口
  • 如何查询某个网站的设计公司最新推广注册app拿佣金
  • 八宝山做网站公司打广告
  • wordpress vip查看插件南宁seo费用服务
  • 建站之星模板怎么设置手机如何做网站
  • 上海公司网站制作价格西安百度关键词排名服务
  • 长沙网页制作开发公司aso优化方案
  • 深圳罗湖网站制作成人电脑基础培训班
  • 无锡网站制作咨询深圳网站设计十年乐云seo
  • 大连城市建设网站seo优化顾问服务阿亮
  • 福州 网站建设沈阳seo关键词排名优化软件
  • 做网站还要买服务器吗镇江seo