重学c++
天蝎座的程序员
这个作者很懒,什么都没留下…
展开
-
6.用c++实现stl中的vector
#include <iostream>#include <ctime>using namespace std;template<typename T>class vector{public: vector(int size=10) { _first = new T[size]; _last = _first; _end = _first + size; } ~vector() { delete[]_first; _first原创 2022-05-29 17:17:30 · 131 阅读 · 0 评论 -
5.类模板
#include <iostream>using namespace std;template<typename T=int>class SeqStack //模板名称+类型参数列表=类名称{public: //构造和析构函数不用加<T>,其他出现模板的地方都应加上类型参数列表 SeqStack(int size = 10) :_pstack(new T[size]) ,_top(0) ,_size(size) {} ~SeqStack原创 2022-05-29 16:35:44 · 65 阅读 · 0 评论 -
4.函数模板
#include <iostream>#include <string>using namespace std;/*模板的意义:对类型也可以进行参数化了函数模板:是不进行编译的,类型不知道模板的实例化:函数调用点进行实例化模板函数:被编译器编译模板的实参推演:可以根据用户传入的实参的类型,来推导模板参数的具体类型模板的特例化(专用化) 特殊(不是编译器提供的,是用户自己提供的)实例化*///函数模板template<typename T原创 2022-05-29 11:29:27 · 62 阅读 · 0 评论 -
3.c++引用浅谈
引用reference是一段内存空间的别名引用规则1 引用,是一种关系型声明,而非定义。不能独立存在,必须初始化,且与原类型保持一致,且不分配内存。2 声明关系,一经声明,不可变更。3 可对引用,再次引用。多次引用的结果,是某一变量具有多个别名,多个别名间是平行关系。4 辨别引用与其它,&符号前有数据类型时,是引用,其它皆为取地址或按位与。#include <iostream>using namespace std;int main(){ int a=1, b=2;原创 2022-04-15 13:16:52 · 899 阅读 · 0 评论 -
2.c++函数重载
重载规则1 函数名相同2 参数个数不同,参数的类型不同,参数顺序不同3 返回值类型,不作为重载的标准#include <iostream>using namespace std;void func(int a){ printf("void func(int a)\n");}void func(char a){ printf("void func(char a)\n");}int main(){ int a=0; func(a); //void func(原创 2022-04-13 12:02:53 · 251 阅读 · 0 评论 -
1.c++类型检查更加严格
c++拥有更加严格的类型检查#include <stdio.h>#include <stdlib.h>int main(){ const int a = 10; //int* pa = &a; //编译不能通过,必须得是const类型的 //char* p = malloc(100); //c++类型检查更加严格,编译不通过 int arr[2][3]; //int** pArr = arr; //无法从“int [2][3]”转换为“int **原创 2022-04-12 22:41:23 · 1221 阅读 · 0 评论