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

宁波网站推广厂家排名公司变更注册资本需要什么资料

宁波网站推广厂家排名,公司变更注册资本需要什么资料,网络营销必看的几本书,wordpress邮件通知文章目录 一、默认拷贝构造函数是浅拷贝1、默认拷贝构造函数2、默认拷贝构造函数是浅拷贝机制 二、代码示例 - 浅拷贝造成的问题 一、默认拷贝构造函数是浅拷贝 1、默认拷贝构造函数 如果 C 类中 没有定义拷贝构造函数 , C 编译器会自动为该类提供一个 默认的拷贝构造函… 文章目录 一、默认拷贝构造函数是浅拷贝1、默认拷贝构造函数2、默认拷贝构造函数是浅拷贝机制 二、代码示例 - 浅拷贝造成的问题 一、默认拷贝构造函数是浅拷贝 1、默认拷贝构造函数 如果 C 类中 没有定义拷贝构造函数 , C 编译器会自动为该类提供一个 默认的拷贝构造函数 , 在函数中对成员变量进行简单的复制操作 ; 默认拷贝构造函数 用于创建一个新对象作为现有对象的副本 , 其作用是将 现有对象 的成员变量 复制到 新对象中 ; 创建一个类对象 并将其 赋值给 另一个类对象时 , 会自动调用 默认拷贝构造函数 ; 2、默认拷贝构造函数是浅拷贝机制 C 编译器 为 类 自动生成的 默认拷贝构造函数 是 浅拷贝 , 只能拷贝 顶层的 成员变量值 , 如果成员变量 是 引用 或 指针 , 其指向的 类 或 内存空间 中的数据 , 是无法拷贝的 ; 如果 没有定义 拷贝构造函数 , 就会触发上述机制 ; 出现如下代码调用时 , 先 调用 有参构造函数 创建了一个 原始对象 s , 然后 将 s 对象的值 赋值给 s2 对象 , 此时调用的是 拷贝构造函数 , 由于没有定义 拷贝构造函数 , 使用的事 C 编译器的 默认拷贝构造函数 , 进行的拷贝 是 浅拷贝 ; 其中的 字符串指针 , 只拷贝了指针的值 , 没有拷贝字符串的具体内容 ; // 调用有参构造函数 , 创建 Student 实例对象Student s(18, Tom);// 声明 Student 对象 s2 , 并使用 s 为 s2 赋值// 该操作会调用 默认的拷贝构造函数 // C 编译器提供的拷贝构造函数 只能进行浅拷贝Student s2 s;二、代码示例 - 浅拷贝造成的问题 下面代码中 , 定义的 Student 类 中 , 定义了 有参构造函数 和 析构函数 , 没有定义拷贝构造函数 , 因此 C 编译器为其生成了 默认拷贝构造函数 , 默认拷贝构造函数 是 浅拷贝 ; 分析下面 创建两个 Student 对象 的代码 : // 调用有参构造函数 , 创建 Student 实例对象Student s(18, Tom);// 打印 Student 实例对象成员变量值s.toString();// 声明 Student 对象 s2 , 并使用 s 为 s2 赋值// 该操作会调用 默认的拷贝构造函数 // C 编译器提供的拷贝构造函数 只能进行浅拷贝Student s2 s;s2.toString();Student s(18, Tom) 是调用有参参构造函数 , 创建 Student 实例对象 , 并调用 s.toString() 打印上述对象 , 打印结果为 : m_age 18 , m_name TomStudent s2 s 代码中 , 声明 Student 对象 s2 , 并使用 s 为 s2 赋值 , 该操作会调用 默认的拷贝构造函数 , C 编译器提供的拷贝构造函数 只能进行浅拷贝 , 因此打印的值是一样的 ; m_age 18 , m_name Tom分析修改 拷贝对象 代码 : // 修改 s2 对象strcpy(s2.m_name, Jey);s.toString();s2.toString();strcpy(s2.m_name, Jey) 代码中 , 修改了 拷贝对象 指针指向的内容 , 将 “Tom” 改为了 “Jey” , 修改了指针指向的内容之后 , 拷贝对象 和 原始对象 的 m_name 成员值都变成了 “Jey” ; 拷贝对象 和 原始对象 都使用了相同的指针 , 那么在析构时就需要注意 , 不能重复 free 掉相同的指针 , 否则就会报错 ; 代码示例 : #define _CRT_SECURE_NO_WARNINGS#include iostream using namespace std;class Student { public:// 有参构造函数Student(int age, const char* name){// 获取字符串长度int len strlen(name);// 为 m_name 成员分配内存 // 注意还要为字符串结尾的 \0 字符分配内存m_name (char*)malloc(len 1);// 拷贝字符串// C 中使用该函数需要// 添加 #define _CRT_SECURE_NO_WARNINGS 宏定义if (m_name ! NULL){strcpy(m_name, name);}// 为 m_age 成员设置初始值m_age age;cout 调用有参构造函数 endl;}~Student(){// 销毁 name 指向的堆内存空间if (m_name ! NULL){free(m_name);m_name NULL;}cout 调用析构函数 endl;}// 该类没有定义拷贝构造函数 , C 编译器会自动生成默认的拷贝构造函数// 打印类成员变量void toString(){cout m_age m_age , m_name m_name endl;}public:int m_age;char* m_name; };int main() {// 调用有参构造函数 , 创建 Student 实例对象Student s(18, Tom);// 打印 Student 实例对象成员变量值s.toString();// 声明 Student 对象 s2 , 并使用 s 为 s2 赋值// 该操作会调用 默认的拷贝构造函数 // C 编译器提供的拷贝构造函数 只能进行浅拷贝Student s2 s;s2.toString();// 修改 s2 对象strcpy(s2.m_name, Jey);s.toString();s2.toString();// 执行时没有问题 , 两个对象都可以正常访问// 但是由于拷贝时 执行的是浅拷贝 // 浅拷贝 字符串指针时 , 直接将指针进行拷贝 , 没有拷贝具体的值// s 和 s2 的 m_name 成员是同一个指针// 如果析构时 , 先析构 s2 , 将指针释放了 // 之后再析构 s 时 发现 继续释放 被释放的指针 , 报错了// 控制台暂停 , 按任意键继续向后执行system(pause);return 0; }执行结果 : 执行后打印如下内容 , 调用有参构造函数 m_age 18 , m_name Tom m_age 18 , m_name Tom m_age 18 , m_name Jey m_age 18 , m_name Jey 请按任意键继续. . .按下任意键 , 继续向后执行 , 调用完第一个析构函数后 , 再次尝试调用第二个析构函数 , 报错了 ;
http://wiki.neutronadmin.com/news/25746/

相关文章:

  • 网站设计的内容python wordpress建站
  • 模版网站建设企业百度seo优化网站
  • 手机微网站第二年续费吗旅游找什么网站好
  • 建设搜索引擎网站江苏省建是国企吗
  • 网站建设团队分工贵安新区网站建设推广
  • 做网站域名要自己注册吗个体工商网站备案
  • 河南艾特网站建设公司石家庄局域网网站建设
  • 网站建设是指如何更换网站的logo
  • 石家庄手机建网站做剧情游戏的网站
  • 怎么做网站策划的模板聊天软件
  • 临沂网站建设报价新余网站建设公司
  • 厦门网站建设是什么意思网站头部通用代码
  • 无锡网站seo报价wordpress form 高度
  • 三网合一网站建设费用做网站每个月可以赚多少
  • 辽宁智能网站建设价位简述什么是seo及seo的作用
  • 口碑好的昆明网站建设岳阳网站平台设计
  • 成品ppt的网站免费观看网站建设和开发
  • 个人做网站平台免费下wordpress
  • 北京网站建设正邦绍兴seo全网营销
  • 番禺网站设计公司公司内部网站建设
  • 微网站开发价格中小企业网络营销
  • 公司想做个网站怎么办外贸展示网站多少钱
  • 做色流网站要注意什么地方百度框架户一级代理商
  • 公司网站开发建设什么会计科目网站建设的目的包含哪些方面
  • 死链接对网站的危害有哪些营销型网站四大功能
  • 仿牌网站 域名注册惠州网站建设怎么样
  • 网站移动转换网站费做进什么科目
  • 吴忠门户网站建设网站后台html模板
  • 公司网站设计定制做企业网站需要买什么
  • 好的网站制作平台中文域名可以做网站吗