经验:当我们编写一个 class template, 而它所提供之"与此 template 相关的"函数支持"所有参数之隐式类型转换"时,请将那些函数定义为 "class template内部的 friend 函数"。
示例:
template
class Rational{
public:
	Rational(const T &numerator = 0, const T &denominator = 1) // Item 20 对于自定义类型以passed by referenc...
                            
                            
                                分类:
编程语言   时间:
2014-07-14 13:52:39   
                                阅读次数:
173
                             
                    
                        
                            
                            
                                Swift与Objective-C的兼容能力允许你在同一个工程中同时使用两种语言。你可以用这种叫做“mix and match”的特性来开发基于混合语言的应用。使用Swfit的最新特性--“mix and match”,你可以实现应用的一部分功能,并无缝地并入已有的Objective-C的代码中。M...
                            
                            
                                分类:
其他好文   时间:
2014-07-14 00:57:54   
                                阅读次数:
356
                             
                    
                        
                            
                            
                                c++ 联邦语言:
		typedef {
		unit	C;
		unit Object-Oriented C++;
		unit Template C++;
		unit STL;
		};
notice: C++高效编程取决于你使用C++的哪一个部分。
eg:pass-by-reference and pass-by-value.
c:内置类型value kill reference...
                            
                            
                                分类:
编程语言   时间:
2014-07-13 00:14:37   
                                阅读次数:
282
                             
                    
                        
                            
                            
                                接口继承和实现继承不同。在 public 继承下, derived classes 总是继承 base class 的接口
class Shape{
public:
	virtual void draw() const = 0;
	virtual void error(const std::string &msg);
	int objectID() const;
	//...
};
class Rectangle: public Shape{...};
class Ellipse: public Sha...
                            
                            
                                分类:
编程语言   时间:
2014-07-12 23:42:27   
                                阅读次数:
251
                             
                    
                        
                            
                            
                                字典
字典是一种存储相同类型多重数据的存储器。每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典,这种方法很大程度上和我们在现实世界中使用字典查字义的方法一样。
 
Swift 的字典使用时需要具体规定可以存储键和值类型。不同于 Objective-C 的NSDi...
                            
                            
                                分类:
其他好文   时间:
2014-07-12 23:15:46   
                                阅读次数:
194
                             
                    
                        
                            
                            
                                经验:异常安全函数即使发生异常也不会泄漏资源或允许任何数据结构败坏。这样的函数区分为三种
可能的保证:
基本型-->发生异常,程序处于某个合法状态
强烈型-->发生异常,程序处于原先状态
不抛异常型-->承诺绝不抛出殿堂
示例:
class PrettyMenu{
public:
	//...
	void changeBackground(std::istream &imgSrc); //改变背景图像
	//...
private:
	Mutex mutex;     //互斥器
	Image *bgI...
                            
                            
                                分类:
编程语言   时间:
2014-07-12 21:35:16   
                                阅读次数:
298
                             
                    
                        
                            
                            
                                经验:"public继承"意味 is-a。适用于 base classes 身上的每一件事情一定也适用于 derived classes 身上,
因为每一个 derived classes 身上,因为每一个 derived class 对象也都是一个 base class 对象。
示例:
class Person {...};
class Student: public Person {...};
void eat(const Person &p); //任何人都会吃
void study(const ...
                            
                            
                                分类:
编程语言   时间:
2014-07-12 21:18:25   
                                阅读次数:
230
                             
                    
                        
                            
                            
                                构造过程
Swift的构造过程通过定义构造器来实现。
不过与Objective-C不同的是,Swift的构造器不需要返回值,同样也不需要表明Func。
另外值得提的是,当构造器中为存储型属性赋值时,不会触发属性观测器。
定制化的构造过程
1. 除了默认的构造器外,我们可以通过增加参数的方式来为其添加自定义的构造函数或者叫便捷构造器(covenience i...
                            
                            
                                分类:
其他好文   时间:
2014-07-12 19:47:48   
                                阅读次数:
354
                             
                    
                        
                            
                            
                                经验:支持”编译依存性最小化“的一般构想是:相依于声明式,不要相依于定义式。
基于此构想的两个手段是 Handle classes 和 Interface classes.
示例:相依于定义式
#include 
#include "date.h"
#include "address.h"
class Person{
public:
	Person(const std::string &name, const Data &birthday, const Address &addr);
	st...
                            
                            
                                分类:
编程语言   时间:
2014-07-12 19:39:46   
                                阅读次数:
347
                             
                    
                        
                            
                            
                                经验:derived classes 内的名称会遮掩 base classes 内的名称。在 public 继承下从来没有人希望如此。
C++ 的名称遮掩规则所做的唯一事情就是: 遮掩名称
derived class 作用域被嵌套在 base class 作用域里
class Base {
private:
	int x;
public:
	virtual void mf1() = 0;
	virtual void mf1(int);
	virtual void mf2();
	void mf3();
	v...
                            
                            
                                分类:
编程语言   时间:
2014-07-12 19:05:42   
                                阅读次数:
224