C++用名称空间来控制名称的作用域: 1不同命名空间的同名变量可以同时存在,不会发生冲突 2命名空间不能出现在代码块中 3我们用作用域运算符::,使用空间名来限定名称,最常用的std::cout 4using 声明和using编译指令: using 使特定的标识符可用例如using std::cout using 编译指令时整个命名空间可用,例如using namespace std 类的自动转换和强制转换: 我们用书中举的例子: class Stonewt { private: ... pub…
Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的时候, 会通过SPL注册一个自己的Autoloader, 出于性能的考虑, 对于框架相关的MVC类, Yaf Autoloader只以目录映射的方式尝试一次. 具体的目录映射规则如下: 对于控制器 Controller 默认模块下为{项目路径}/controllers/, 否则为{项目路径}/mod…
① PHP 面向对象高级特性 ② 11 种 PHP 设计模式 ③ PSR-0,Composer,Phar 等最流行的技术 目标是掌握 PHP 各类设计模式,以及具备设计纯面向对象框架和系统的能力 [命名空间] 早期 php 没有命名空间的概念,所有的代码可以被认为是在同一个命名空间内运行,因此不能出现名称相同的类或函数: 代码 a ---- 类 a 代码 b ---- 类 b 代码 c ---- 函数 d 代码 d --- 函数 d 以上都是不允许的情况. php 5.3 增加了命名空间的概念.…
开发工具:phpstorm phpstudy 命名空间:声明当前文件 类的自动载入…
第六章 运算符和类型强制转换 1,运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ -- 移位运算符 << >> 比较运算符 == != <> <= >= 赋值运算符 = += -= *= /= %= &= |= ^= <<= >>= 成员访问运算符 . 索引运算符 [] 数据类型转换运算符 () 条件运算符…
复印控制 --管理指针成员 引言: 包括指针的类须要特别注意复制控制.原因是复制指针时.一个带指针成员的指针类 class HasPtr { public: HasPtr(int *p,int i):ptr(p),val(i) {} int *get_ptr() const { return ptr; } int get_val() const { return val; } void set_ptr(int *p) { ptr = p; } void set_val(int i) { val…
分类 --友元.static成员 一.友元 友元机制同意一个类将对其.友元关系:一个样例 如果一个窗体管理类Window_Mgr可能须要訪问由其管理的Screen对象的内部数据.Screen应该同意其訪问自己的私有成员: class Screen { friend class Window_Mgr; }; Window_Mgr的成员能够直接引用Screen的私有成员: Window_Mgr & Window_Mgr::relocate(Screen::index x,Screen::index…
拷贝控制 --消息处理演示样例 说明: 有些类为了做一些工作须要对复制进行控制. 为了给出这种样例,我们将概略定义两个类,这两个类可用于邮件处理应用程序.Message类和 Folder类分别表示电子邮件(或其它)消息和消息所出现的文件夹,一个给定消息能够出如今多个文件夹中. Message上有 save和 remove操作,用于在指定Folder中保存或删除该消息. 数据结构: 对每一个Message,我们并非在每一个Folder中都存放一个副本,而是使每一个Message保存一个指针集(se…
拷贝控制 --复制构造函数.赋值操作符 引言: 当定义一个新类型时,须要显式或隐式地指定复制.赋值和撤销该类型的对象时会发生什么– 复制构造函数.赋值操作符和析构函数的作用!      复制构造函数:具有单个形參..对象的定义形式 对于类类型.初始化的复制形式和直接形式有所不同:直接初始化直接调用与实參匹配的构造函数.复制初始化式总是调用复制构造函数.[复制初始化首先使用指定构造函数创建一个暂时对象,然后复制构造函数将那个暂时对象复制到正在创建的对象!] //理解下列语句的差别 string n…
namespace 假设如果不使用namespace,那么每个类在一个项目中的名字就必须是固定的.因为php在new的时候不管是调用autoload还是调用已加载过的类,都存在一个类名对应的文件.所以在没有namespace的时候,我们会想各种命名规则来区分不同的类,比如project1_school1_class1_Student或者project2_school_class_Student. 引入namespace之后就可以将这个有效规避了,一个namespace就相当于对应一个文件路径,查…