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

泰州做网站的网站建设公司注册

泰州做网站的,网站建设公司注册,途牛网网站建设评价,承德 网站建设目录 1、关键字new#xff1a; 1、用法#xff1a; 2、理解#xff1a; 3、与malloc的相同与不同#xff1a; 1、相同#xff1a; 2、不同#xff1a; 2、模版初阶#xff1a; 1、函数模版#xff1a; 1、概念#xff1a; 2、关键字#xff1a;template 1、用法 2、理解 3、与malloc的相同与不同 1、相同 2、不同 2、模版初阶 1、函数模版 1、概念 2、关键字template 3、模版原理 4、函数模版的实例化 1、隐式实例化 2、显式实例化 2、类模版 1、定义格式 2、类模版的实例化 1、关键字new new是相对于C语言的malloc一个新的内存管理方式通过new和delete配套使用来进行动态内存管理。 1、用法 类型*  名字 new 类型; 例如 int* ptr1 new int 这就是动态申请了一个int类型空间。 2、理解 1、new() 这样在里面可以进行初始化例如 int* ptr2  new int(10); 这就是动态申请一个int类型的空间并初始化为10 2、new[n] 这样就是分配这种类型的n个大小的内存空间,并用默认构造函数来初始化这些变量; 例如 int* ptr6 new int[10]; 这样就是动态申请10个int类型的空间。 3、与malloc的相同与不同 1、相同 都是从对上申请的空间并且都需要手动释放。 2、不同 其余的还有 1、malloc和free是函数new和delete是操作符 2、malloc申请的空间不会初始化new可以初始化调用构造函数 3、malloc申请空间时需要手动计算空间大小并传递new只需在其后跟上空间的类型即可 如果是多个对象[]中指定对象个数即可 4、malloc的返回值为void*, 在使用时必须强转new不需要因为new后跟的是空间的类型 5、malloc申请空间失败时返回的是NULL因此使用时必须判空new不需要但是new需要捕获异常 6、new/delete和malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数初始化和析构函数清理但是二者对于内置类型几乎是一样的。 class A { public:A(int a 0): _a(a){cout A() endl;}~A(){cout ~A() endl;} private:int _a; }; int main() {A* p1 (A*)malloc(sizeof(A));A* p2 new A(1);free(p1);delete p2;return 0; } 调用构造函数就可以对自定义类型进行初始化了比如在链表那里可以不用newnode了 2、模版初阶 引入 在C语言中交换函数Swap存在“写死”但是一会儿要交换int类型一会儿要交换double类型那么就要我们写很多不同种类的函数就很繁琐在C中就引入了模版的概念这样可以大大减少代码的重复度。 1、函数模版 1、概念 函数模板代表了一个函数家族比如Swap函数可交换int double 等等该函数模板与类型无关在使用时被参数化根据实参类型产生函数的特定类型版本。 2、关键字template 模版格式 templatetypename T1,typename T2,......,typename Tn void 函数名(T 形参名1,......,T 形参名n)//注意权限情况加const 以下是示例代码 templatetypename T void Swap(T x, T y) {T tmp x;x y;y tmp; } int main() {int a 1;int b 2;Swap(a, b);cout a a endl b b endl;return 0; } 3、模版原理 虽然我们只写了一个模版函数但是实际上调用是因为编译器帮我们通过函数模版实现了不同的函数再调用它们来达到不同类型函数的调用。 4、函数模版的实例化 函数模板的实例化用不同类型的参数使用函数模板。 1、隐式实例化 让编译器根据实参推演模板参数的实际类型叫做隐式实例化。 2、显式实例化 在函数名后的中指定模板参数的实际类型。 templatetypename T T Add(const T x,const T y) {return x y; }int main() {int a 10;double b 20.10;cout Add(a, b) endl;return 0; } 上述代码中有个问题就是a和b是不同类型的但是在函数中又必须是同一种类型的这样的话就可以用显式实例化或者在Addab中进行转换。 1、在Addab中转化就是转化为Add(double)a,b或者Add(a,(int)b) 2、更好的一种方法就是用显式实例化 改为Addint(a,b)或者Adddouble(a,b) 但是实际上不会这么用在后面list等等数据结构中会用到。 2、类模版 1、定义格式 templateclass T1, class T2, ..., class Tn class 类模板名 {  // 类内成员定义 }; 2、类模版的实例化 类模板实例化与函数模板实例化不同类模板实例化需要在类模板名字后跟然后将实例化的类型放在中即可类模板的名字不是真正的类就是个名字而实例化的结果才是真正的类。 比如我写了一个栈模版 templateclass T class Stack { public:Stack(size_t capacity 3);void Push(const T data);// 其他方法...~Stack(){if (_array){free(_array);_array NULL;_capacity 0;_size 0;}}private:T* _array;int _capacity;int _size; }; 那么栈的类名Stack 栈的类型StackT 这里是将声明与定义分离了在函数外面进行定义就需要加上模版的声明和类域的划分 templateclass T StackT::Stack(size_t capacity) {_array new T[capacity];_capacity capacity;_size 0; }templateclass T void StackT::Push(const T data) {_array[_size] data;_size; }
http://www.hkea.cn/news/14557936/

相关文章:

  • 华久做网站百度权重从1提升到2的办法
  • 网站建设合同应注意什么免费个人网页制作
  • 淮南公司网站建设linux目录不可写 wordpress
  • 中国建设银行演示网站做网站应达到什么效果
  • 南宁市千界网络科技有限公司网站seo外链建设
  • 网站做移动端网站资源如何做参考文献
  • 怎样的网站打开速度块芦苞网站建设
  • 定西市网站建设咨询如何刷网站排名
  • 建设银行企业网站访问不了网站制作和美工
  • 江西建设厅网站官网仿制别人的网站违法吗
  • 临河做网站郑州网站排名公司
  • 关于网站建设的小故事找建设网站公司哪家好
  • 百度地图api wordpress长春百度seo代理
  • a5创业网站建设打码网站怎么做接口
  • 什么网站做婚礼请柬都匀网站建设
  • 做网站6000左右的电脑整站优化推广
  • .net core 做网站淘宝网站如何做虚拟
  • 全美网站建设郑州网站设计见效快
  • 湖南网站建设公wordpress微信防红插件下载
  • php怎样做网站的注删页面迅雷网站做爰视频
  • 重庆网站建设找重庆最佳科技建分类网站得花多少钱
  • 佛山市企业网站seo点击软件婚纱网站源代码
  • 网站开发招聘年薪答辩ppt模板免费下载 素材
  • 企业网站 微博模块怎么建立网站 个人
  • 苏州网站建设系统哪家好网站托管费用多少
  • 蓟县集团网站建设企业网站系统的设计与开发教程
  • 专门做项目代理的网站有哪些网站建设工作室
  • 建一个wordpress网站成本南宁门户网站有哪些
  • 企业网站建设常见问题大连推广网站搭建哪家好
  • 网站建设方案及报win 7怎么卸载wordpress