C++
文章平均质量分 65
Wood Wall
这个作者很懒,什么都没留下…
展开
-
Template函数模板
函数模板就是一个通用的函数,函数类型和形参不确定,用一个虚拟的类型来代表。凡是函数体相同的函数都可以用这个模板来代替。编译器自动推导实参的数据类型,生成该类型的函数定义。原创 2023-12-12 22:53:02 · 143 阅读 · 0 评论 -
VS 配置管理器 debug_release,X86_X64,生成_部署
VS提供了这一功能。在重新生成这个项目,项目文件目录会有Release文件,里面的exe就是生成的。1)运行时库:Debug版本采用了一些保护机制来帮助发现错误,Debug版本的Runtime Liabrary(运行时库)加强了错误检测,应当指出,如果Debug有错误,而Release版本正常,程序肯定是有 Bug的,只是我们还没有发现。在汇编的层次上,X86与X64的寄存器长度不同(CPU同时处理的数据位数不同),同理寻址范围也相差很大,指令集也不一样。long的长度不同,X86是4B,X64是8B。原创 2023-04-20 21:16:15 · 1875 阅读 · 0 评论 -
lib静态链接库与dll动态链接库
lib库分为两种:静态链接lib库(静态lib库)。动态链接库dll库的lib导入库(lib导入库)原创 2023-04-20 21:13:58 · 388 阅读 · 0 评论 -
const修饰函数、返回值、参数(2.24)
因为上面说了形参在接收的时候是会创建一个临时变量的,那么对于传递的自定义类,他会new一个对象出来,这个对象调用构造函数构造,而在函数结束时还要调用析构函数析构,这样带来的开销就非常大了。以上,对于类的成员变量的修改,即使不是修改值,而是将成员变量从一个int型变为一个地址,这样也是一种对于成员变量的改变。而在const修饰的函数中,对于成员变量是给予了const属性的。而const成员函数只能调用const成员函数,对于非const函数,即使在函数内部没有修改成员变量,也不能被const函数所调用。原创 2023-04-20 21:12:20 · 3257 阅读 · 0 评论 -
C++输入型参数和输出型参数(2.24)
这时函数的输入(给函数本身的)输出(需要返回给使用者的)就都要靠参数来完成了。这里的参数指的是形参列表里面的参数。外部调用函数的时候通过形参列表把参数传给函数,函数再通过返回值拿到想要的结果。另注:const char *src不是说src指针本身不可变,而是说src所指向的元素是不可变的。**1.作为输入:**作为输入的指针型变量在函数内部是不会进行修改的,所以一般加const。:通常这个形参是指针型且没有加const,代表外部需要函数处理这个指针所指的变量。一、为什么做这种区分?原创 2023-04-20 21:11:24 · 1143 阅读 · 0 评论 -
C++Primer(4.20)cout、clog、cerr区别
上面的程序输出到cout.txt里面,但事实上只有cout重定向到文件里面了,cerr和clog只能在屏幕上输出,不能重定向。这段代码缓冲区没满,我也没做任何刷新缓冲区的操作,也能正常输出。而在缓冲区的帮助下,cout将数据先写入缓冲区,等到满足条件时一次刷屏输出。这样就基本搞清楚了,只用cout输出的话,万一程序崩了,想要输出的关键信息可能还在缓冲区里面没出来。1)强制刷新缓冲区:比如flush,还有endl(endl可以理解为/n+flush),程序结束的时候。cerr:无缓冲输出,不可重定向。原创 2023-04-20 21:08:50 · 305 阅读 · 0 评论