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

网站建设流程哪家好私人建设手机网站

网站建设流程哪家好,私人建设手机网站,网站制作 商务,wordpress5.2多站点设置方法new关键字 在C中#xff0c;内存分为栈和堆。栈中的对象生命周期较短#xff0c;往往在作用域结束后就会销毁#xff0c;而堆中的对象生命周期较长#xff0c;只有当使用delete或者程序结束时才会销毁。而new则是将我们创建的对象分配到堆中#xff0c;使对象可以跨作用域…new关键字 在C中内存分为栈和堆。栈中的对象生命周期较短往往在作用域结束后就会销毁而堆中的对象生命周期较长只有当使用delete或者程序结束时才会销毁。而new则是将我们创建的对象分配到堆中使对象可以跨作用域使用。 类成员 部分引用类型的类成员就会用到new例如String中的char*指针这样类就可以处理不同长度的字符串而不是在类设计时固定一个数组的长度但是在类构造中使用new一定要记得释放和同步如果构造函数中使用new则在析构函数用要使用delete。 String::String(){ stp new char[length 1];} String::~String(){ delete stp; stp NULL;} 类的赋值运算符和复制构造函数 这个还挺重要的因为在C中不使用new也可以创建类对象但是是分配在栈中的这样在使用指针的时候就会出现一些问题。 String function(String stp){ String myString;  //隐式调用默认构造函数在栈中创建一个myString对象  stp myString; return stp; }    //当该作用域结束时该对象会被销毁而其也会相应的调用其析构函数 在上述例子中我们是可以获得一个返回的String对象的但是当调用其中的指针读取字符时则会出现问题首先: 1.当需要赋值时会创建一个临时变量然后调用复制构造函数将myString对象中的成员对象复制到临时变量中。 2.在使用复制构造函数时只会简单的进行浅拷贝对于基本类型是值拷贝而引用类型则是地址的拷贝。 3.赋值运算符还是会进行一次对象的赋值所以还需要重写赋值运算符因为不清楚程序是否会调用还是保险为好。 当使用stp myString;时 可能会用到复制构造函数也可能用到赋值运算符在这种情况下可以使用两者都进行重写。 重写复制构造函数: Class_name(const Class_name); 重写赋值运算符: Class_name Class_name::operator(cosnt Class_name); 例子: String(const String str){         delete[] this-stp;         this-stp new char[length 1];         for(int i 0; i size;i){                         this-stp[i] str.stp[i];         } } 使用上述构造函数和赋值运算的重写将类对象中的引用类型进行值的拷贝,这样当赋值时临时对象的销毁就不会引起空指针或者内存泄漏的问题。 成员初始化列表 C构造函数提供了一种可以用来初始化数据成员的特殊语法就是使用成员初始化列表。 语法: String::String(int qs):qSize(qs),items(0),front(NULL),real(NULL){                          } 这种方式可以初始化非静态的const对象。 或者直接在类中定义初始化 class String{         private:         enum{Q_SIZE 10};         Node* front NULL;         int items  0;         const int qSize Q_SIZE; } 自动应用类型转换 将一个标准类型变量赋给另一种标准类型变量时如果两者类型兼容则C自动将这个值转换为接收变量的类型。 只接受一个参的构造函数才能作为转换函数。 String(double db); String(int i); String(char a); 当声明以上构造函数时使用下面方式会进行隐式的调用对应的构造函数将其他类型转为String类型对象. String a 1;  //调用形参为int的构造函数 String b 23.2;  //double  function(String str); function(1);  //也会转换为String对象 但是这样会产生一部分问题当并不想隐式的执行转换函数时需要使用explicit关键字来关闭这种自动特性。 explicit String(int i);  //不能隐式的作为转换。  String a 1  //错误不能使用隐式转换 String a (String)1;  //正确 String a String(1);  //正确 类构造器也支持自动转换允许可以转型的对象进行自动的转换. 例如只持有一个double型参的构造函数:  String(double db); String a 1;  //将int类型转换为double类型然后创建对象。 但是自动转换不能有二义性如果String构造函数中还存在其他可以由int转型的类型如long则会出现错误编译器将提示错误。 转换函数 既然可以将其他类型转换为类对象也可以将类对象转换为特定的一种类型需要使用到转换函数。 需要注意的是: 1.转换函数为类方法 2.不允许有返回类型 3.不能有型参 语法: operator double(); 例子: explicit operator int(){  //使用explicit关键字防止隐式转化        int length this-size;            int sumNum 0;         int dig 1;         for(int i 0; i length; i){                 sumNum (this-stp[i] - 0) * dig;                 dig * 10;                    }              return sumNum; } 在上述例子中将字符数组中的数字进行计算得出了一个int值实现了将String对象转换为int类型。
http://www.pierceye.com/news/528411/

相关文章:

  • 云南个旧建设局网站宁波关键词优化品牌
  • 网站建设方案应急处置wordpress我爱水煮鱼
  • 网页设计模板html代码班级主题广东seo推广
  • 西安 网站托管西安网站关键词排名
  • 做网站用discuz还是wp汉狮做网站公司郑州
  • 网站运营服务中心建设方案网页免费制作网站
  • 做网站销售有前景怎么注销网站
  • 福州建设网站设计电子商务网站平台有哪些
  • 扁平化色块风格的网站企业网站建设客户需求调查问卷
  • 网站建设产品服务痘痘如何去除效果好
  • 展会电子商务网站如何建设单页网站如何做
  • 济南软件外包邢台seo服务公司
  • 网站建设2017主流代码语言垂直型电商网站如何做
  • 重庆 网站定制推广产品怎么发朋友圈
  • 网站建设公司初心经典企业网站欣赏
  • 本地网站开发公司网站建设 产品拍照
  • 军队营房基础建设网站wordpress 标签云集
  • 苏州建设建设信息网站如何给自己的店做小程序
  • 沈阳微营销网站制作厨师培训机构 厨师短期培训班
  • 个人备案用作资讯网站网站开发yuanmus
  • 大连网站建设 选领超科技网站建设实录音乐
  • 上海网站建设流wordpress关闭会员
  • 网站运营的目的及意义pc网站怎么适配移动端
  • 网站深圳优化建设10月上海娱乐场所又要关门了
  • 怎么做网页文件打开别的网站河南省城乡和住房建设厅
  • 泰州公司做网站成都网页设计培训中心
  • 网站业务需求文档网站正在建设中 动态
  • 一级a做爰电影片免费网站姑苏区住房建设局网站
  • 宁夏建设教育协会网站医院网站跳出率高
  • 网站建设佰首选金手指二关于网站建设的职位