刚刚看完C++ Primer Plus第九章,然后刷知乎看到说C++ Primer要好一点,其实仔细想想写代码这件事儿大抵和看书关系也没有很大,补充下基础知识,知道C++里有这么个玩意儿,之后或许项目里要用时百度下或者翻下之前写过的demo就好。
当然这里先挖个坑,看完plus之后再粗略扫一遍C++ Primer
废话不多说切入正题。
第九章主要讲了内存模型以及名称空间
首先,写程序养成.h文件和cpp分开是一个非常好的习惯,这里写了一个非常基础的由三个文件组成的demo。
下载地址如下:http://download.csdn.net/detail/zmdsjtu/9620674
接着本章讲了一些操作符,感觉挺费力用得或许也不多,值得注意的是mutable,在新建一个const的struct时里面用mutable定义时就可以进行修改了。
然后以下demo展示了new操作符以及名称空间的定义和使用。
代码下载地址:http://download.csdn.net/detail/zmdsjtu/9620752
具体代码如下:
--------------------------------------------------------------------------------------------------------------------
#include<iostream>
#include<new>//new操作符需要引入这个
//储存说明符auto register static extern mutable 感觉常用的就static
void new操作符();
struct 一个不知名结构 {char 字符[20];int 整数; };char buffer1[50];char buffer2[500];
void 名字空间();
namespace 帅比 {const int age = 25;void 说句话() { std::cout<< "这是一个名为帅比的名字空间"<<std::endl; }; }
int main() {
//new操作符();
名字空间();
system("pause");
}
void new操作符() {
//先来把四种new用法用一下
一个不知名结构 *p1,*p3;
int *p2, *p4;
p1 = new 一个不知名结构;
p2 = new int[20];
p3 = new (buffer1) 一个不知名结构;//在buffer1里找空间来new给p3
p4 = new (buffer2) int[20];
std::cout << "不高兴写例子了,大家看看定义就好~" << std::endl;
delete p1;
delete[] p2;
//p3 ,p3占了别人家的窝就别delete了....
}
void 名字空间() {
using namespace std;
cout << "举个简单的例子,用了std的名字空间这个cout就不用加std::了" << endl;
//再来个例子,这里名字空间最好写在.h文件里然后实现函数写在另外的cpp里,为了方便这里这么写
cout << "再来一个自己定义的名字空间~~" << endl;
using namespace 帅比;
说句话();
}
-------------------------------------------------------------------------------------------------------------------------------------
最后祝大家编程愉快:)