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

简单个人网站欣赏想找工作去哪个网站

简单个人网站欣赏,想找工作去哪个网站,开发语言有哪几种,会写网站怎么赚钱C 快速回顾(二) 前言一、友元类二、友元函数三、深浅拷贝浅拷贝深拷贝 前言 用于快速回顾之前遗漏或者补充C知识 一、友元类 友元的优点是可以快速的轻松的访问的原本由于私有保护的字段和函数,同时这也是它的缺点这样破坏了原本封装性。 …

C++ 快速回顾(二)

  • 前言
  • 一、友元类
  • 二、友元函数
  • 三、深浅拷贝
    • 浅拷贝
    • 深拷贝


前言

用于快速回顾之前遗漏或者补充C++知识

一、友元类

友元的优点是可以快速的轻松的访问的原本由于私有保护的字段和函数,同时这也是它的缺点这样破坏了原本封装性。
如下代码是不能直接访问ClassA 中的私有和保护函数的

class ClassA
{
private:void Test01() {printf("Test01\r\n");}
protected:void Test02() {printf("Test02\r\n");}
public:void Test03() {printf("Test03\r\n");}
};class ClassB
{
public:void TestFunc(ClassA& Value){//Value.Test01();//Value.Test02();Value.Test03();}
};int main()
{ClassA A;ClassB B;B.TestFunc(A);system("pause");return 0;
}

要想访问需要加上friend class xxx

class ClassA
{friend class ClassB;
private:void Test01() {printf("Test01\r\n");}
protected:void Test02() {printf("Test02\r\n");}
public:void Test03() {printf("Test03\r\n");}
};

二、友元函数

使用全局函数调用ClassA中的私有变量a 是没有办法进行直接访问的

class ClassA
{
private:int a;
};void Test02(ClassA& Value)
{//Value.a = 100;
}int main()
{ClassA A;Test02(A);system("pause");return 0;
}

需要使用友元函数进行访问,需要注意友元函数不是某个对象的函数,不属于任何对象

class ClassA
{
public:friend void Test01(ClassA& Value);
private:int a;
};void Test01(ClassA& Value)
{Value.a = 100;
}void Test02(ClassA& Value)
{//Value.a = 100;
}int main()
{ClassA A;Test01(A);Test02(A);system("pause");return 0;
}

三、深浅拷贝

浅拷贝

只对值进行拷贝赋值
默认不写拷贝构造就是浅拷贝,只会对值进行拷贝赋值
如下对拷贝进行了复写,什么也不做只打印一个hello,一共会执行两次拷贝构造下面代码
ClassTest B = A; 会执行一次
ClassTest C(A);也会执行一次
只是对象的值一样但是实际的地址不同

class ClassTest
{
public:ClassTest(int Value1, int Value2):a(Value1),b(Value2){}ClassTest(const ClassTest& Value) {printf("Hello");}
private:int a = 0;int b = 0;
};int main()
{ClassTest A(1,2);auto a = &A;ClassTest B = A;auto b = &B;ClassTest C(A);system("pause");return 0;
}

深拷贝

面对如下案例,由于浅拷贝导致被释放了两次导致崩溃,如何解决就是使用深拷贝

class ClassPtr
{
public:ClassPtr(int Value1, int Value2):a(Value1), b(Value2){}public:int a;int b;
};class ClassTest
{
public:ClassTest(int Value1, int Value2):a(Value1),b(Value2){Ptr = new ClassPtr(100, 200);}//ClassTest(const ClassTest& Value) {//}~ClassTest(){if (Ptr){printf("~ClassTest\r\n");delete Ptr;Ptr = nullptr;}}
public:int a = 0;int b = 0;ClassPtr* Ptr;
};int main()
{{ClassTest A(1, 2);ClassTest B = A;}system("pause");return 0;
}

在这里插入图片描述
深拷贝修改如下

	ClassTest(const ClassTest& Value) {this->a = Value.a;this->b = Value.b;this->Ptr = new ClassPtr(Value.Ptr->a, Value.Ptr->b);}

http://www.dtcms.com/wzjs/706427.html

相关文章:

  • 网页设计作业成品免费百度云seo网站建设教程
  • 网站建设几点关门扬中零壹网站建设
  • 帝国建设网站韩漫网站建设
  • 阜阳微网站建设多少钱上传网站
  • 域名续费后网站打不开自己做网站免费
  • 服务类型的网站怎么做潍坊市建设局门户网站
  • 成都网站制作服务烟台做网站排名
  • 广州门户网站黄山seo
  • 福建微网站建设公司数据库网站开发教程
  • 如何做网站客户端深圳保障性住房查询
  • 常州网站建设流程学大数据专业后悔死了
  • 做建设网站的活的兼职做淘宝这种网站
  • 新注册域名做网站好处素材天下
  • 能玩游戏的网站房屋中介做网站的书籍
  • 企业信息网站模板别人品牌的域名做网站吗
  • 笔趣阁建站教程Wordpress背景图覆盖
  • 昆明好的网站开发公司企业网站带后台模板
  • 芜湖做网站的公司排名网络营销推广的目标与策略
  • 网站负责人备案采集照具体要求怎么在网上卖东西视频
  • 能找本地人做导游的网站网站备案信息更改
  • 如何做网站链接软件app网站建设
  • 如何在公司服务器建个内部 网站经典软文
  • 锦州微商网站制做建筑资质最新政策2023年
  • 深圳网站seo优化北京网站设计推荐柚米
  • 西安自适应网站建设自媒体平台注册方法
  • 大连在哪个网站做网上核名专注吴中网站建设推广
  • 本地做网站绑定域名自己接私单网站开发
  • 广州 天河网站设计布吉网站建设
  • 百度查询云南官网优化
  • 运营一个网站的费用网站建设难点分析