摘要: namespace, 命名空间, 用于解决命名冲突的问题. Python中的package/module, Javascript中的object, Java中的package都具有这样的功能. 如何使用命名空间? include int main() { std::cout using namesp 阅读全文
posted @ 2016-12-24 19:06 宁静是一种习惯 阅读(204) 评论(0) 推荐(0)
摘要: 当需要使用已有的方法或库时, 可以将它们的头文件 进来. 会在preprocess过程中被替换成它包含的代码. 头文件中包含了需要使用的函数/变量的声明. 当然声明与定义可以同时进行, 也就是说头文件中可以仅包含声明, 也可包含函数的实现. C语言中include的格式 ` include incl 阅读全文
posted @ 2016-12-24 15:57 宁静是一种习惯 阅读(1340) 评论(1) 推荐(0)
摘要: 含义 声明(Declaration), 用于告诉编译器被声明的函数/变量的存在, 及它们的类型/调用格式信息, 以检查是否被正确调用. 声明不分配内存空间. 定义(Definition), 用于告诉编译器被声明的函数/变量的存在位置, 会分配内存空间. 变量/函数在被使用之前一定要被声明. 声明和定 阅读全文
posted @ 2016-12-24 15:26 宁静是一种习惯 阅读(291) 评论(0) 推荐(0)
摘要: 预处理(Preprocess). 使用Preprocessor Directives将一些代码替换成另一些代码. 例如将include替换成它指向的文件包含的代码. 编译成目标文件(Compiation). 需要两个回合(pass): 1. 将代码解析成树(parse tree). 这个过程中还会执 阅读全文
posted @ 2016-12-24 14:40 宁静是一种习惯 阅读(202) 评论(0) 推荐(0)
摘要: 一种编程语言能被计算机执行的前提是它在执行前被翻译成机器码. 根据这个翻译过程发生的时间不同, 可以将编程语句分为解释语言(Interpreter)与编译语言(Compiler). Interpreter还有口译的涵义. 在这里, 解释器就是口译者, 它将用户写的脚本语句口译成机器码给计算机"听". 阅读全文
posted @ 2016-12-24 14:03 宁静是一种习惯 阅读(262) 评论(0) 推荐(0)
摘要: Reference与Pointer中直接存储的都是变量的地址, 它们唯一的不同是前者的存储的地址值是只读的, 而后者可以修改. 也就是说Reference不支持以下操作: 其他语言, 如Javascript, Python, Java, 中的object, 它们对应的变量也都是直接存储对象的地址, 阅读全文
posted @ 2016-12-24 00:15 宁静是一种习惯 阅读(293) 评论(0) 推荐(0)
摘要: 只有一点不同:C++的类别控制更为严格, 不允许通过 来实现不同数据类型的数据之间的相互赋值, 只能显示的cast. 例如: 类似这种代码在C中可以通过编译, 但在CPP中不行. Reference Thinking in C++, 2nd, Chapter 11. 阅读全文
posted @ 2016-12-24 00:06 宁静是一种习惯 阅读(578) 评论(0) 推荐(0)