
C++
文章平均质量分 95
wayne0074
不务正业的程序猿
展开
-
#与##在define中的作用
原文链接:https://blog.youkuaiyun.com/u012814856/article/details/78658939与##在define中的作用 “#”是把参数字符串化,“##” 是将两个参数连为一个整体。#include <iostream>#include <cstdlib>// 测试不带 # 号的效果#define NO_NUMB...转载 2018-08-14 14:04:12 · 259 阅读 · 0 评论 -
为什么类的静态成员要在类外初始化
在C++类的静态成员为什么要在类外初始化首先C++的静态成员是需要初始化的(实际上需要分配一个内存,不一定需要赋值),初始化是赋一个初始值,而定义是分配内存。静态成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义。#include &lt;stdio.h&gt; class A { public: static int a; //声明但未定义 };...原创 2018-08-22 16:14:59 · 4596 阅读 · 1 评论 -
C++中的内存管理
C++的内存分配方式在了解C++内存池之前我们要先了解C++是如何对内存进行分配的。 我们知道C++的内存存储区分为5个,分别是静态存储区:全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。堆:使用new分配的内存块。栈:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行...原创 2018-08-26 17:40:16 · 712 阅读 · 0 评论 -
C++面试总结
本文是笔者在准备面试时对网络上一些问题进行归纳和总结,有些问题的答案篇幅较长,笔者选取了一些比较经典的答案链接供读者进行参考。C++11的常用新特性https://blog.youkuaiyun.com/jiange_zh/article/details/79356417extern关键字extern声明函数在外部定义。extern修饰函数的时候,说明该函数在外部的某个文件内进行了声明。...原创 2018-08-17 16:48:56 · 222 阅读 · 0 评论 -
C++中的智能指针
为什么要引入智能指针的概念我们来看一个例子void remodel(std::string &amp; str){ std::string * ps = new std::string(str); ... if (weird_thing()) throw exception(); str = *ps; delete ps; ...原创 2018-08-27 15:53:46 · 202 阅读 · 0 评论