Type和Class有什么区别?


问题内容

是什么使类型不同于类,反之亦然?

(与一般语言无关)


问题答案:

以下答案来自Gof书(“设计模式”)

对象的类定义了对象的实现方式。该类定义了对象的内部状态及其操作的实现。

相反,对象的 类型仅引用其接口-可以响应的一组请求。

一个对象可以具有许多类型,而不同类的对象可以具有相同的类型。

//example in c++
template<typename T> 
const T & max(T const & a,T const &b)
{
return a>b?a:b;  //> operator of the type is used for comparison
}

max函数需要一个类型为operation>且具有其自身类型的类型作为其接口之一,满足上述要求的任何类均可用于为该类生成特定的max函数。