
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
其实上面我们写的日期加减天数的代码逻辑还有一点问题,因为凡事不一定都是按照我们的预想来的,用户有可能会出现一些我们没有考虑到的情况,在之前的代码中我们都下意识的认为用户会输入一个正数,但是有没有可能用户会输入一个负数呢?也就是说,我们日期加一个负的天数,可以看作想算当前日期n天之前的日期,所以也不能说是无意义的,同理,日期减一个负数逻辑上也说的通,所以我们在这部分主要就是来判断一下,如果用户传给我

/结构体的定义int* arr;int size;//要以分号结尾//类的定义int* _arr;int _size;//要以分号结尾上面就是结构体和类定义的对比,可以看到类和结构体的定义几乎一模一样,因为class类本身就是为了修正C语言中结构体的不足而创造,所以定义和结构体几乎一样,那么接下来我们就来说说类的特点、以及C++和C语言结构体、C++结构体和C++类的区别class为定义类的关键字

问题来了,我们该怎么解决这个问题呢?在上面的例子中,我们使用模板写了一个Swap函数,属于函数模板,编译器按需实例化出一个又一个的Swap函数,比如我们传int类型的参数,编译器就会生成int类型的Swap函数,就跟我们上面讲的草莓玩具的例子一样,根据模具就能很轻松的制作出来草莓玩具。隐式实例化就是不需要程序员指定相应的类型,让编译器自己去根据实参的类型实例化出对应的函数,比如之前我们举的Swap

1. 调用operator new函数申请空间(operator new的底层封装了malloc,根据malloc的返回值来决定是否抛出异常)2. 在申请的空间上执行构造函数,如果没有传参那么调用默认构造,如果传参了就按照参数完成构造,最终完成对象的构造1. malloc、calloc、realloc以及free是函数,new和delete是操作符2.malloc需要计算开辟空间的大小,并且需要强

根据上面的分析,编译器确实帮我们自动完成了优化,减少了拷贝,是不是非常神奇,接下来我们来讲一下拷贝构造的另一个大坑,就是我们在用临时对象拷贝构造st2时,有一个小细节,就是临时对象具有常性,可以看作临时对象都被const修饰了,如果要让临时对象拷贝构造给st2,上面的拷贝构造函数的第一个形参必须加上const,否则就会出错。接下来就该进行传值返回了,这里就稍微有点不一样了,因为我们的形参st在函数

(9)现在我们就来看进行一次匹配的过程,也很简单,我们还是创建一个while循环,如果s1和s2解引用不是\0,并且解引用后相等,那我们就让s1和s2加加,一直往后走,当循环结束时,我们就判断s2解引用后是否是\0,如果是\0说明完全匹配上了,就返回cur,不是\0那么说明没有完全匹配,就让cur++,开始下一次循环查找。而不带n的字符串函数和带n的字符串函数的根本区别是带n的字符串函数更灵活,可

位段的成员必须是 int、unsigned int 或signed int ,在C99中位段成员的类型也可以选择其他类型位段的成员名后边有⼀个冒号和⼀个数字struct Aint a:2;int b:5;int c:10;int d:30;位段位段,那么变量后面的数字有没有可能就是二进制位,比如成员a是不是就是占据2个二进制位呢?








