徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
安装
比浏览器更快的访问!
 

C++和類型系統

快捷方式: 差异相似杰卡德相似系数参考

C++和類型系統之间的区别

C++ vs. 類型系統

C++是一種使用廣泛的计算机程序設計語言。它是一種通用程序設計語言,支援多重编程模式,例如程序化程序設計、数据抽象、面向对象程序設計、泛型程序設計和设计模式等。 比雅尼·斯特勞斯特魯普博士在贝尔实验室工作期间在20世紀80年代發明並實現了C++。起初,這種語言被稱作“C with Classes”(“包含‘類’的C語言”),作為C語言的增強版出現。随后,C++不斷增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多繼承(multiple inheritance)、标准模板库(standard template library, STL)、异常处理(exception)、运行时类型信息(Runtime type information)、命名空間(namespace)等概念逐漸納入標準。1998年,國際標準組織(ISO)頒布了C++程序設計語言的第一個國際標準ISO/IEC 14882:1998,目前最新标准为ISO/IEC 14882:2017。根據《C++編--程思想》(Thinking in C++)一書,C++與C的代码执行效率往往相差在±5%之間。 C++語言發展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向对象語言,並且憑藉着接近C語言的效率,在工業界使用的開發語言中佔據了相當大份額;第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程式庫的出現,泛型程序設計在C++中佔據了越來越多的比重。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的衝擊;第三階段從2000年至今,由於以Loki、MPL(Boost)等程式庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最複雜的一員。. 在计算机科学中,--系統用于定義如何將程式語言中的數值和zh:運算式;zh-tw:運算式;zh-cn:表达式-归類为许多不同的型別,如何操作这些型別,这些型別如何互相作用。型別可以确认一个值或者一组值具有特定的意义和目的(雖然某些型別,如抽象型別和--型別,在----中,可能不表示為值)。型別系統在各種語言之間有非常大的不同,也許,最主要的差異存在於編譯時期的語法,以及執行時期的操作实现方式。 編譯器可能使用值的靜態型別以最佳化所需的儲存區,並選取對值運算時的較佳演算法。例如,在許多C編譯器中,「浮點數」資料型別是以32 位元表示,與IEEE 754規格一致的單精度浮點數。因此,在數值運算上,C應用了浮點數規範(浮點數加法、乘法等等)。 型別的約束程度以及評估方法,影響了語言的型別。更進一步,程式語言可能就型別多態性部分,對每一個型別都對應了一個極度個別的演算法的運算。型別理論研究型別系統,儘管實際的程式語言型別系統,起源於電腦架構的實際問題、編譯器實作,以及語言設計。.

之间C++和類型系統相似

C++和類型系統有(在联盟百科)14共同点: 字符串CC++C语言编程语言變數计算机科学运算符重载迭代器JavaML抽象資料型別泛型数组

字符串

字符串(String),是由零个或多个字符组成的有限序列。一般记为s.

C++和字符串 · 字符串和類型系統 · 查看更多 »

C

C,c是拉丁字母中的第3个字母。在伊特鲁里亚语中,爆破辅音没有明显的发音,所以他们把希腊语中的Γ, γ(Gamma)来书写他们的/k/。开始的时候,罗马人同时使用它来书写/k/和/g/,后来在它的右中部加了一横杠变成G。可能在更早的时候,只有/g/,而用K表示/k/。 一些学者表示,闪族语的ג是骆驼的图形。/k/在拉丁语中发展成上腭音和软腭音音位变体,这可能是由于伊特鲁里亚语的影响。因此,今天的C有很多不同的音值:在法语和西班牙语中为:和,在意大利中的和(像英语中的CH)等等。.

C和C++ · C和類型系統 · 查看更多 »

C++

C++是一種使用廣泛的计算机程序設計語言。它是一種通用程序設計語言,支援多重编程模式,例如程序化程序設計、数据抽象、面向对象程序設計、泛型程序設計和设计模式等。 比雅尼·斯特勞斯特魯普博士在贝尔实验室工作期间在20世紀80年代發明並實現了C++。起初,這種語言被稱作“C with Classes”(“包含‘類’的C語言”),作為C語言的增強版出現。随后,C++不斷增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多繼承(multiple inheritance)、标准模板库(standard template library, STL)、异常处理(exception)、运行时类型信息(Runtime type information)、命名空間(namespace)等概念逐漸納入標準。1998年,國際標準組織(ISO)頒布了C++程序設計語言的第一個國際標準ISO/IEC 14882:1998,目前最新标准为ISO/IEC 14882:2017。根據《C++編--程思想》(Thinking in C++)一書,C++與C的代码执行效率往往相差在±5%之間。 C++語言發展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向对象語言,並且憑藉着接近C語言的效率,在工業界使用的開發語言中佔據了相當大份額;第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程式庫的出現,泛型程序設計在C++中佔據了越來越多的比重。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的衝擊;第三階段從2000年至今,由於以Loki、MPL(Boost)等程式庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最複雜的一員。.

C++和C++ · C++和類型系統 · 查看更多 »

C语言

C是一种通用的程式語言,广泛用于系统软件与应用软件的开发。于1969年至1973年間,為了移植與開發UNIX作業系統,由丹尼斯·里奇與肯·汤普逊,以B语言为基础,在贝尔实验室設計、开发出來。 C语言具有高效、灵活、功能丰富、表达力强和較高的可移植性等特点,在程式設計中备受青睐,成为最近25年使用最为广泛的编程语言。目前,C语言編譯器普遍存在於各種不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了众多後來的程式語言,例如C++、Objective-C、Java、C#等。 二十世纪八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言的標準。二十世纪八十年代至今的有关程式開發工具,一般都支持符合ANSI C的語法。.

C++和C语言 · C语言和類型系統 · 查看更多 »

编程语言

编程语言(programming language),是用来定义计算机程序的形式語言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 最早的编程语言是在電腦發明之前產生的,當時是用來控制及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的编程語言,而且每年仍有新的编程語言誕生。很多编程語言需要用指令方式說明計算的程序,而有些编程語言則屬於宣告式編程,說明需要的結果,而不說明如何計算。 编程语言的描述一般可以分為及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如C語言的規格文件也是ISO標準中一部份,2011年後的版本為ISO/IEC 9899:2011,而其他55語言(像Perl)有一份主要的文件,視為是。.

C++和编程语言 · 编程语言和類型系統 · 查看更多 »

變數

在初等數學裡,變數或變元、元是一個用來表示值的符號,該值可以是隨意的,也可能是未指定或未定的。在代數運算時,將變數當作明確的數值代入運算中,可以於單次運算時解出多個問題。一個典型的例子為一元二次公式,該公式可以解出每個一元二次方程的值,只需要將方程的系數代入公式中的變數即可。 變數這個概念在微積分中非常重要。一般,一個函數y.

C++和變數 · 變數和類型系統 · 查看更多 »

计算机科学

计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(computer science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何与应用的实用技术的学科。 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。 尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。 著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。 计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.

C++和计算机科学 · 计算机科学和類型系統 · 查看更多 »

运算符重载

在计算机程序设计中,运算符重载是多态的一种。这里,运算符(比如+,.

C++和运算符重载 · 运算符重载和類型系統 · 查看更多 »

迭代器

迭代器(iterator)有時又稱游標(cursor)是程式設計的软件设计模式,可在容器物件(container,例如鏈表或陣列)上遍訪的介面,設計人員無需關心容器物件的内存分配的实现细节。 各種語言實作迭代器的方式皆不盡同,有些物件導向語言像Java, C#, Ruby, Python, Delphi都已將迭代器的特性內建語言當中,完美的跟語言整合,我們稱之隱式迭代器(implicit iterator),但像是C++語言本身就沒有迭代器的特色,但STL仍利用模板實作了功能強大的迭代器。STL容器的數據的內存地址可能會重新分配(reallocate),與容器綁定的迭代器仍然可以定位到重新分配後的正確的內存地址。 迭代器另一方面還可以整合生成器(generator)。有些語言將二者視為同一介面,有些語言則將之獨立化。.

C++和迭代器 · 迭代器和類型系統 · 查看更多 »

Java

Java是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性,广泛应用于企业级Web应用开发和移动应用开发。 任職於昇陽電腦的詹姆斯·高斯林等人于1990年代初开发Java語言的雛形,最初被命名为Oak,目標設定在家用电器等小型系統的程式语言,應用在电视机、电话、闹钟、烤面包机等家用电器的控制和通訊。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代網際網路的发展,Sun公司看見Oak在網際網路上应用的前景,于是改造了Oak,於1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的-zh-hans:指针; zh-hant:指標;-,改以-zh-hans:引用; zh-hant:參照;-取代,同時移除了C++中的--和多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。昇陽電腦对Java语言的解释是:「Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言」 Java不同於一般的编译語言或直譯語言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的執行速度有了大幅提升。 与传统型態不同,Sun公司在推出Java時就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司後來推出了与之竞争的.NET平台以及模仿Java的C#语言。後來Sun公司被甲骨文公司併購,Java也隨之成為甲骨文公司的產品。 現時,行動作業系統Android大部分的代碼採用Java 程式設計語言編程。.

C++和Java · Java和類型系統 · 查看更多 »

ML

ML可表示:.

C++和ML · ML和類型系統 · 查看更多 »

抽象資料型別

抽象資料型別(Abstract Data Type,ADT)是计算机科学中具有类似行为的特定类别的数据结构的数学模型;或者具有类似语义的一种或多种程序设计语言的数据类型。抽象数据类型是间接定义的,通过其上的可执行的操作以及这些操作的效果的数学约束(与可能的代价)。 例如,抽象的堆疊(stack)由3个操作定义:推入push,彈出pop(接受约束:每次彈出返回的是最新被推入且没有被弹出的数据,也就是後進先出),查看堆疊頂端数据peek。当分析使用堆疊演算法的效率,所有这3个操作用时相同,无论堆疊中包含多少项数据;并且对每项数据栈使用了常量大小的存储。 抽象数据类型(ADT)是纯粹理论实体,用于简化描述抽象算法,分类与评价数据结构,形式描述程序设计语言的类型系统。一个ADT可以用特定数据类型或数据结构实现,在许多程序设计语言中有许多种实现方式;或者用形式规范语言描述。ADT常实现为模块(module):模块的接口声明了对应于ADT操作的例程(procedure),有时用注释描述了约束。.

C++和抽象資料型別 · 抽象資料型別和類型系統 · 查看更多 »

泛型

泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。Ada、Delphi、Eiffel、Java、C#、F#、Swift 和 Visual Basic.NET 称之为泛型(generics);ML、Scala 和 Haskell 称之为参数多态(parametric polymorphism);C++ 和 D称之为模板。具有广泛影响的1994年版的《Design Patterns》一书称之为参数化类型(parameterized type)。.

C++和泛型 · 泛型和類型系統 · 查看更多 »

数组

在計算機科學中,陣列資料結構(array data structure),簡稱数组(Array),是由相同类型的元素(element)的集合所組成的資料結構,分配一块连续的内存来存储。利用元素的索引(index)可以计算出该元素對應的儲存地址。 最簡單的資料結構類型是一維陣列。例如,索引為0到9的32位元整數陣列,可作為在記憶體位址2000,2004,2008,...2036中,儲存10個變量,因此索引為i的元素即在記憶體中的2000+4×i位址。陣列第一個元素的記憶體位址稱為第一位址或基礎位址。 二维数组,对应于數學上的矩陣概念,可表示為二維矩形格。例如: a.

C++和数组 · 数组和類型系統 · 查看更多 »

上面的列表回答下列问题

C++和類型系統之间的比较

C++有95个关系,而類型系統有65个。由于它们的共同之处14,杰卡德指数为8.75% = 14 / (95 + 65)。

参考

本文介绍C++和類型系統之间的关系。要访问该信息提取每篇文章,请访问:

嘿!我们在Facebook上吧! »