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

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++已經成為當今主流程序設計語言中最複雜的一員。.

95 关系: AdaALGOLALGOL 68執行期型態訊息名字修饰增值和减值操作符多型 (物件導向程式設計)多重继承多重编程范式子集字符串容器 (抽象数据类型)尼克劳斯·维尔特巨集布爾 (數據類型)异常处理位操作國際標準化組織分布式计算命名空间唯讀記憶體图灵奖BCPLBoost C++ LibrariesCC++C++ Technical Report 1C++/CLIC++11C++14C++17C++BuilderC++程式語言 (書)C++標準程式庫C♯C语言ClangCLU硅谷图形公司程序化程式設計程序編程程式庫第一類物件算法类 (计算机科学)继承 (计算机科学)编程语言美國國家標準協會D語言面向对象程序设计...類型系統變數计算机科学计算机程序设计模式 (计算机)调用约定贝尔实验室运算符重载迭代器藍圖虚函数 (程序语言)FalconGCCHewlett-PackardJavaLinuxLR剖析器LuaMicrosoft Visual C++MLML语言PerlPHPPrintfQtSimulaSTLSun StudioTypenameUNIX抽象化 (計算機科學)抽象資料型別林纳斯·托瓦兹核心核心語言格式化字符串标准模板库模板模板 (C++)模板超編程比较Java和C++比雅尼·斯特劳斯特鲁普泛型指標 (電腦科學)数组 扩展索引 (45 更多) »

Ada

Ada,是一种程序设计语言。它源于美国军方的一个计划,旨在整合美军系统中运行着上百种不同的程序设计语言编写的程序,並提高除錯能力與效率,由Pascal及其他語言擴展而成,比較接近自然語言和數學表達式,並用「Ada」命名以紀念-zh-cn:埃达·洛夫莱斯;zh-tw:愛達·勒芙蕾絲;zh-hk:愛達·勒芙蕾絲;zh-sg:埃达·洛夫莱斯;-(Ada Lovelace)。.

新!!: C++和Ada · 查看更多 »

ALGOL

ALGOL,名稱源自演算法語言(ALGOrithmic Language)的縮寫,是一族指令式編程語言,發展於1950年代中期,對許多其它程式語言產生了重大影響。计算机协会在教科書及學術文章採用此語言做為描述演算法的標準語法超過三十年。 由大多數近代程式語言皆使用類似ALGOL的語法來看,ALGOL可與差不多同時期的FORTRAN、LISP及COBOL並列為四大最有影響力的高階語言。ALGOL被設計用來避免FORTRAN中一些已知的問題,最終引領了許多其它程式語言的興起,包括PL/I、Simula、BCPL、B、Pascal及C。 ALGOL引入了程式碼區間,並用begin⋯end來分隔。它是第一個利用詞法作用域實作巢狀函式的語言,也是第一個注重形式語言定義的語言,並在ALGOL 60報告中引入了巴科斯範式來作為設計語言形式文法的原則。 ALGOL主要有三種規格,以初次發表的年份命名:.

新!!: C++和ALGOL · 查看更多 »

ALGOL 68

ALGOL 68(源自ALGOrithmic Language 1968的縮寫),一種指令式程式語言,為ALGOL家族的成員,被認為是ALGOL 60的後繼者。它設計的目標,是提供更廣泛的應用,以及更嚴格的語法定義。.

新!!: C++和ALGOL 68 · 查看更多 »

執行期型態訊息

在程式設計中,所謂的執行期型態訊息(Runtime type information,RTTI)指的是在程式執行時保存其物件的型態訊息的行為。某些語言實作僅保留有限的型態訊息,例如繼承樹資訊,而某些實作會保留較多資訊,例如物件的屬性及方法訊息。 執行期型態訊息是一個電腦術語,用以標示一個電腦語言是否有能力在執行期保持或判別其物件或變數的型態訊息。.

新!!: C++和執行期型態訊息 · 查看更多 »

名字修饰

名字修饰,又译作名字粉碎、名字重整,译自英文name mangling或name decoration,是现代计算机程序设计语言的编译器用于解决由于程序实体的名字必须唯一而导致的问题的一种技术。 它提供了在函数、结构体、类或其它的数据类型的名字中编码附加信息一种方法,用于从编译器中向链接器传递更多语义信息。 该需求产生于程序设计语言允许不同的条目使用相同的标识符,包括它们占据不同的命名空间(典型的命名空间是由一个模块、一个类或显式的namespace指示来定义的)或者有不同的签名(例如函数重载)。 任何由编译器产生的目标代码通常与另一部分的目标代码(产生于同一款或不同款的编译器)通过链接器把它们链接起来。链接器需要一大堆每个程序实体信息。例如正确链接一个函数需要它的名字、参数个数和它们的类型,等等。.

新!!: C++和名字修饰 · 查看更多 »

增值和减值操作符

在多数指令式编程语言中,增值和减值操作符指的是一类单目操作符,这些操作符相应地增加或减少其操作数的值。以C语言为例,“++”“--”操作符分别为增值操作符和减值操作符。.

新!!: C++和增值和减值操作符 · 查看更多 »

多型 (物件導向程式設計)

#重定向 多型 (计算机科学).

新!!: C++和多型 (物件導向程式設計) · 查看更多 »

多重继承

物件導向程式設計中的多重繼承(multiple inheritance,缩写:MI)指的是一個類別可以同時從多於一個父類繼承行為與特徵的功能。與單一繼承相對,單一繼承指一個類別只可以繼承自一個父類。.

新!!: C++和多重继承 · 查看更多 »

多重编程范式

多范式编程语言(Multi-paradigm programming language)是一種可以支持超過一種編程范型的程式語言。「Multi-paradigm」这个词是由比雅尼·斯特劳斯特鲁普博士在其著作中提出的,用于表述C++可以同时使用多种风格来写程序,比如面向对象和泛型编程。.

新!!: C++和多重编程范式 · 查看更多 »

子集

子集,為某個集合中一部分的集合,故亦稱部分集合。 若A和B为集合,且A的所有元素都是B的元素,则有:.

新!!: C++和子集 · 查看更多 »

字符串

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

新!!: C++和字符串 · 查看更多 »

容器 (抽象数据类型)

在计算机科学中,容器是指实例为其他类的对象的集合的类、数据结构、或者抽象数据类型。换言之,它们以一种遵循特定访问规则的系统的方法来存储对象。容器的大小取决于其包含的对象(或元素)的数目。潜在的不同容器类型的实现可能在空间和时间复杂度上有所差别,这使得在给定应用场景中选择合适的某种实现具有灵活性。.

新!!: C++和容器 (抽象数据类型) · 查看更多 »

尼克劳斯·维尔特

尼克劳斯·埃米尔·维尔特(Niklaus Emil Wirth,),生於瑞士溫特圖爾,是瑞士計算機科學家。 從1963年到1967年,他成為斯坦福大学的計算機科學部助理教授,之後又在苏黎世大学擔當相同的職位。1968年,他成為苏黎世联邦理工学院的信息学教授,又往施乐帕洛阿尔托研究中心進修了兩年。 他是好幾种編程語言的主設計師:.

新!!: C++和尼克劳斯·维尔特 · 查看更多 »

巨集

,是一種批--量處理的稱謂。 计算机科学裡的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。 宏的用途在于自动化频繁使用的序列或者是获得一种更强大的抽象能力。 计算机语言如C语言或汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C语言的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C程序员可以获得更精巧的宏。 Lisp类语言如Common Lisp和Scheme有更精巧的宏系统:宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。一个C宏可以定义一段语法的替换,然而一个Lisp的宏却可以控制一节代码的计算。 获得了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新创建的语法结构与语言内建的语法结构不可区分。例如,一种Lisp方言有cond而没有if,就可以使用宏由前者定义后者。Lisp语法的去部主要扩展,比如面向对象的CLOS系统,可以由宏来定义。 MacroML有型别语法宏,一种有效的理解方式是把这种语法宏看作是多阶段计算。.

新!!: C++和巨集 · 查看更多 »

布爾 (數據類型)

布爾(Boolean,台湾译--,中國大陸譯--)是计算机科学中的逻辑数据类型,以發明布爾代數的數學家喬治·布--爾為名。它是只有两种值的原始類型,通常是True和False。 在一些语言中,布尔数据类型被定义为可代表多于两个真值。例如,ISO SQL:1999标准定义了一个SQL布尔型可以储存三个可能的值:真、假、未知(SQL null被当作未知真值来处理,但仅仅在布尔型中使用)。.

新!!: C++和布爾 (數據類型) · 查看更多 »

异常处理

异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。 各种编程语言在处理异常方面具有非常显著的不同点(错误检测与异常处理区别在于:错误检测是在正常的程序流中,处理不可预见问题的代码,例如一个调用操作未能成功结束)。某些编程语言有这样的函数:当输入存在非法数据时不能被安全地调用,或者返回值不能与异常进行有效的区别。例如,C语言中的atoi函数(ASCII串到整数的转换)在输入非法时可以返回0。在这种情况下编程者需要另外进行错误检测(可能通过某些辅助全局变量如C的errno),或进行输入检验(如通过正则表达式),或者共同使用这两种方法。 通过异常处理,我们可以对用户在程序中的非法输入进行控制和提示,以防程序崩溃。 从进程的视角,硬件中断相当于可恢复异常,虽然中断一般与程序流本身无关。 从子程序编程者的视角,异常是很有用的一种机制,用于通知外界该子程序不能正常执行。如输入的数据无效(例如除数是0),或所需资源不可用(例如文件丢失)。如果系统没有异常机制,则编程者需要用返回值来标示发生了哪些错误。.

新!!: C++和异常处理 · 查看更多 »

位操作

位操作是程序设计中对位模式或二进制数的一元和二元操作。在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。在现代架构中,情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算)。.

新!!: C++和位操作 · 查看更多 »

國際標準化組織

國際標準化組織(International Organization for Standardization;Organisation internationale de normalisation;Международная организация по стандартизации;简称:ISO)成立於1947年2月23日,--定全世界工商業國際標準的國際標準建立機構。 ISO總部設於瑞士日內瓦,成員包括162個會員國。該組織定義為非政府組織,官方語言是英語、法語和俄語。參加者包括各會員國的國家標準機構和主要公司。 ISO與負責電子設備標準的國際電工委員會密切合作。 ISO的國際標準以數字表示,例如:「ISO 11180:1993」的「11180」是標準號碼,而「1993」是出版年份。.

新!!: C++和國際標準化組織 · 查看更多 »

分布式计算

在計算機科學中,分布式计算(Distributed computing),又譯為--。這個研究領域,主要研究分散式系統(Distributed system)如何進行計算。分散式系統是一組電腦,透過網路相互连接傳遞訊息與通訊後并协调它们的行为而形成的系統。组件之间彼此进行交互以实现一个共同的目标。把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,再上传运算结果後,將結果统一合并得出数据结论的科学。分布式系统的例子来自有所不同的面向服务的架构,大型多人線上遊戲,对等网络应用。 目前常见的分布式计算项目通常使用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输(志愿计算)。如分析计算蛋白质的内部结构和相关药物的Folding@home项目,該项目結構庞大,需要惊人的计算量,由一台电脑计算是不可能完成的。虽然现在有了计算能力超强的超级計算機,但這些設備造價高昂,而一些科研机构的经费却又十分有限,藉助分佈式計算可以花費較小的成本來達到目標。.

新!!: C++和分布式计算 · 查看更多 »

命名空间

命名空间(Namespace,名前空間),也称名字空间、名称空间等,它表示着一个标识符(identifier)的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他命名空间中。 例如,设Bill是X公司的员工,工号为123,而John是Y公司的员工,工号也是123。由于两人在不同的公司工作,可以使用相同的工号来标识而不会造成混乱,这里每个公司就表示一个独立的命名空间。如果两人在同一家公司工作,其工号就不能相同了,否则在支付工资时便会发生混乱。 这一特点是使用命名空间的主要理由。在大型的计算机程序或文档中,往往会出现数百或数千个标识符。命名空间(或类似的方法,见“命名空间的模拟”一节)提供一隱藏區域標識符的機制。通过将逻辑上相关的标识符组织成相应的命名空间,可使整个系统更加模块化。 在编程语言中,命名空间是对作用域的一种特殊的抽象,它包含了处于该作用域内的标识符,且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。许多现代编程语言都支持命名空间。在一些编程语言(例如C++和Python)中,命名空间本身的标识符也属于一个外层的命名空间,也即命名空间可以嵌套,构成一个命名空间树,树根则是无名的全局命名空间。 函数和类的作用域可被視作隱式命名空间,它們和可見性、可訪問性和对象生命周期不可分割的联系在一起。.

新!!: C++和命名空间 · 查看更多 »

唯讀記憶體

唯讀記憶體(Read-Only Memory,ROM)是一種半導體記憶體,其特性是一旦儲存資料就無法再將之改變或刪除,且內容不會因為電源關閉而消失。在電子或電腦系統中,通常用以儲存不需經常變更的程式或資料,例如早期的家用電腦如Apple II的監督程式 、BASIC語言直譯器、與硬體點陣字型,個人電腦IBM PC/XT/AT的BIOS(基本输入输出系統)與IBM PC/XT的BASIC直譯器,與其他各種微電腦系統中的韌體(Firmware),均儲存在ROM內。.

新!!: C++和唯讀記憶體 · 查看更多 »

图灵奖

图灵奖(ACM A.M. Turing Award),又譯杜林獎、A.M.图灵奖,是计算机协会(ACM)于1966年设立的獎項,专门奖励对计算机事业作出重要贡献的个人。其名称取自世界计算机科学的先驱、英国科学家、曼徹斯特大学教授艾伦·图灵(A.M. Turing),这个奖设立目的之一是纪念这位現代计算机科學的奠基者。获奖者必须是在计算机领域具有持久而重大的先进性的技术贡献。大多数获奖者是计算机科学家。是计算机界最负盛名的奖项,有“计算机界诺贝尔奖”之称。 图灵奖对获奖者的要求极高,评奖程序也极严,一般每年只奖励一名计算机科学家,只有极少数年度有两名以上在同一方向上做出贡献的科学家同时获奖。2014年11月13日之前图灵奖由英特尔公司以及Google公司赞助,奖金为250,000美元。2014年11月13日,虽然英特尔退出赞助,Google反而将奖金提高到1,000,000美元,和诺贝尔奖奖金相近。 每年,美国计算机协会将要求提名人推荐本年度的图灵奖候选人,并附加一份200到500字的文章,说明被提名者为什么应获此奖。任何人都可成为提名人。美国计算机协会将组成评选委员会对被提名者进行严格的评审,并最终确定当年的获奖者。.

新!!: C++和图灵奖 · 查看更多 »

BCPL

BCPL(Basic Combined Programming Language),是一種電腦程式設計語言,源自更早的CPL語言,1966年由劍橋大學的馬丁·理察德(Martin Richards)所發展出來的。 Richards試著移除了CPL中最複雜的組成,第一支BCPL compiler在IBM 7094電腦中完成。 身為早期程式語言的BCPL,如今已不再廣泛使用,但它的影響卻是深遠的,今日流行的C語言即是參考BCPL所設計。BCPL是第一支使用括弧語言,括弧特徵在C語言中隨處可見,例如.

新!!: C++和BCPL · 查看更多 »

Boost C++ Libraries

Boost C++ 函式庫(Libraries)是一組擴充C++功能的經過同行評審(Peer-reviewed)且開放源碼程式庫。大多數的函式為了能夠以開放源碼、封閉專案的方式運作,而授權於Boost軟體授權條款(Boost Software License)之下。許多Boost的開發人員是來自C++標準委員會,而部份的Boost函式庫成為C++的TR1標準之一。 為了要確保函式庫的效率與彈性,Boost廣泛的使用模板(template)功能。而它是針對各式領域的C++使用者與應用領域(Application Domain)上,包含的函式庫類別從像這種類通用函式庫,到像是檔案系統的作業系統抽象層,甚至能夠利用Boost來開發額外的函式庫或是給進階的C++使用者利用,像是。.

新!!: C++和Boost C++ Libraries · 查看更多 »

C

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

新!!: 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++ Technical Report 1

C++ Technical Report 1 (TR1)(英文)是ISO/IEC TR 19768, C++ Library Extensions(函式庫擴充)的一般名稱。TR1是一份文件,內容提出了對C++標準函式庫的追加項目。這些追加項目包括了正则表达式、智能指针、哈希表、随机数生成器等。TR1自己並非標準,他是一份草稿文件。然而他所提出的項目大多数已成為下次的官方標準(C++11)的一部分。這份文件的目標在於「為擴充的C++標準函式庫建立更為廣泛的現成實作品」。.

新!!: C++和C++ Technical Report 1 · 查看更多 »

C++/CLI

C++/CLI(CLI: Common Language Infrastructure)在计算机语言中是一门由微软设计,用来代替C++托管扩展(Managed C++,下文使用MC++指代)的语言。这门语言在兼容原有的C++标准的同时,重新简化了托管代码扩展的语法,提供了更好的代码可读性。和微软.NET的其他语言一样,微软向ECMA提交了C++/CLI的标准化请求,并且被ECMA通过成为正式的标准。C++/CLI现在可以被Visual C++ 2005和更高版本的编译器支持。C++/CLI的部分特性已经申请了专利。.

新!!: C++和C++/CLI · 查看更多 »

C++11

C++11,先前被稱作C++0x,即ISO/IEC 14882:2011,是C++程式語言的一个標準。它取代第二版標準ISO/IEC 14882:2003(第一版ISO/IEC 14882:1998公開於1998年,第二版於2003年更新,分别通稱C++98以及C++03,两者差异很小),且已被C++14取代。相比于C++03,C++11標準包含核心語言的新機能,而且擴展C++標準程式庫,併入了大部分的C++ Technical Report 1程式庫(數學的特殊函式除外)。 ISO/IEC JTC1/SC22/WG21 C++標準委員會計劃在2010年8月之前完成對最終委員會草案的投票,以及於2011年3月召開的標準會議完成國際標準的最終草案。然而,WG21預期ISO將要花費六個月到一年的時間才能正式發佈新的C++標準。為了能夠如期完成,委員會決定致力於直至2006年為止的提案,忽略新的提案。最终于2011年8月12日公布,并于2011年9月出版。 2012年2月28日的國際標準草案是最接近于C++11标准的草案,差异仅有编辑上的修正。 像C++這樣的程式語言,透過一種演化的的過程來發展其定義。這個過程不可避免地將引發與現有程式碼的相容問題,在C++的發展過程中偶爾會發生。不過根據比雅尼·斯特劳斯特鲁普(C++的創始人並且是委員會的一員)表示,新的標準將幾乎100%相容於現有標準。.

新!!: C++和C++11 · 查看更多 »

C++14

C++14是C++的现行标准的非正式名称,正式名称为"International Standard ISO/IEC 14882:2014(E) Programming Language C++"。C++14旨在作为C++11的一个小扩展,主要提供漏洞修复和小的改进。C++14标准的委员会草案(Committee Draft)N3690于2013年5月15日发表。工作草案(Working Draft)N3936已于2014年3月2日完成。最终的投票期结束于2014年8月15日,结果(一致通过)已于8月18日公布。.

新!!: C++和C++14 · 查看更多 »

C++17

C++17又稱C++1z,是C++的現行標準的非正式名稱,正式名稱為"International Standard ISO/IEC Programming Language C++"。C++17旨在作為大型擴充功能,最終的投票期將於2017年結束。 目前不少著名C++編譯器已支持C++17仍未定案的草案(draft),例如最新的GCC6已支持C++ concept的C++事务型内存(Transactional Memory),Visual Studio與Clang目前都提供了modules。.

新!!: C++和C++17 · 查看更多 »

C++Builder

C++Builder 是一個用於在Windows平台上撰寫C++語言應用程式的快速化程式開發(RAD,Rapid Application Development)的整合開發環境(IDE,Integrated Development Environment),原係由Borland公司所開發銷售,現在此產品則歸屬於Embarcadero Technologies旗下的子公司Codegear。 C++Builder把由Delphi開發出來的IDE和VCL(Visual Component Library)與C++編譯器結合。此系列產品的開發週期通常是先在Delphi上作重要的改進,然後再用到C++Builder上。在Delphi上所開發的主要元件通常無須修改就可以給C++Builder使用,但C++ Builder的元件卻不一定能給Delphi使用。 C++Builder的開發環境中包含了所見即所得(WYSIWYG)的圖形使用者介面(GUI)設計工具,是最早導入簡易的、真正可以用拖拉方式進行軟體開發的程式設計工具之一。.

新!!: C++和C++Builder · 查看更多 »

C++程式語言 (書)

《C++程式語言》(The C++ Programming Language)是第一本介紹C++的書籍,作者是「C++之父」比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup),他是此程式語言的設計者。第一版《C++程式語言》於1985年推出。 由於沒有官方標準,這本書成為了實質標準,引領C++不斷發展。1998年,C++才有第一個國際標準 ISO/IEC 14882:1998: Programming Language C++ 。隨着C++標準化和新函式庫(Library)的出現,本書亦推出了新版本,介紹C++的改變和新功能,以及更正一些誤排。.

新!!: C++和C++程式語言 (書) · 查看更多 »

C++標準程式庫

#重定向 C++標準函式庫.

新!!: C++和C++標準程式庫 · 查看更多 »

C♯

C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#以.NET框架类库作为基础,拥有类似Visual Basic的快速开发能力。C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言,希望借助这种语言来取代Java。C#已经成为Ecma国际和国际标准组织的标准规范。.

新!!: 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语言 · 查看更多 »

Clang

Clang(類似英文單字clang) 是一個C、C++、Objective-C和Objective-C++程式語言的編譯器前端。它採用了底層虛擬機(LLVM)作為其後端,而且由LLVM2.6開始,一起釋出新版本。它的目標是提供一個GNU編譯器套裝(GCC)的替代品,支援了GNU編譯器大多數的編譯設定以及非官方語言的擴充功能。作者是克里斯·拉特納(Chris Lattner),在蘋果公司的贊助支持下進行開發,而原始碼授權是使用類BSD的伊利诺伊大学厄巴纳-香槟分校開源碼許可。 Clang專案包括Clang前端和Clang靜態分析器等。.

新!!: C++和Clang · 查看更多 »

CLU

CLU 是一门由麻省理工学院(MIT)的芭芭拉·利斯科夫和她的学生在1974年到1975年创造的编程语言。虽然它没有被广泛使用,但它引入了许多现在广泛使用的特性,并被视为面向对象(OOP)编程发展的重要一步。 然而,它并不是面向对象的,而是被认为基于对象的语言,因为它缺乏OOP的许多特性。 主要贡献包括抽象資料型別, 传需求调用,迭代器,多值返回 (并行赋值形式), 泛型,和不定型別。值得注意的是它使用了类与构造器和方法,但没有 继承。.

新!!: C++和CLU · 查看更多 »

硅谷图形公司

硅谷图形公司(英语:Silicon Graphics, Inc.,简称:SGI,),在台灣早年譯為--、視算電腦,是一家美國電腦公司,1982年开始生产图形显示终端。是由吉姆·克拉克和创建。初期,公司基于吉姆·克拉克在几何流水线领域的工作生产加速3D图形显示的专门硬件和软件。SGI最初于1981年11月在美国加州创立,并在1990年1月作为Delaware corporation重建。2006年3月8日,SGI申请破产保护。2009年4月1日,服务器与存储技术公司Rackable Systems宣布计划以大约2500万美元现金收购SGI剩余资产,同时还将承担其部分债务。 2016年8月11日,慧與科技(HPE, Hewlett Packard Enterprise)宣布以每股美金7.75, 合共2億7仟5百萬美金, 收購SGI所有股權, 當中包括其所持現金與承担其所有債項。.

新!!: C++和硅谷图形公司 · 查看更多 »

程序化程式設計

#重定向 过程式编程.

新!!: C++和程序化程式設計 · 查看更多 »

程序編程

#重定向 过程式编程.

新!!: C++和程序編程 · 查看更多 »

程式庫

#重定向 函式庫.

新!!: C++和程式庫 · 查看更多 »

第一類物件

一類物件(First-class object)在電腦科學中指可以在執行期創造並作為參數傳遞給其他函數或存入一個變數的實體。將一個實體變為第一類物件的過程叫做「物件化」(Reification)。 「第一類物件」這一名稱最早由克里斯托弗·斯特雷奇在1960年代發明,原稱「第一類公民」(First-class citizen),意指函數可作為電腦語言中的第一類公民。英文中也稱「First-class entity」或「First-class value」。.

新!!: C++和第一類物件 · 查看更多 »

算法

-- 算法(algorithm),在數學(算學)和電腦科學之中,為任何良定义的具體計算步驟的一个序列,常用於計算、和自動推理。精確而言,算法是一個表示爲有限長列表的。算法應包含清晰定義的指令用於計算函數。 算法中的指令描述的是一個計算,當其時能從一個初始狀態和初始輸入(可能爲空)開始,經過一系列有限而清晰定義的狀態最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化算法在内的一些算法,包含了一些隨機輸入。 形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,並在其后尝试定义或者中成形。这些尝试包括库尔特·哥德尔、雅克·埃尔布朗和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的遞歸函數,阿隆佐·邱奇於1936年提出的λ演算,1936年的Formulation 1和艾倫·圖靈1937年提出的圖靈機。即使在當前,依然常有直覺想法難以定義爲形式化算法的情況。.

新!!: C++和算法 · 查看更多 »

类 (计算机科学)

在物件導向程式設計,类(class)是一种面向对象计算机编程语言的构造,是创建对象的蓝图,描述了所创建的对象共同的和方法。 类的更严格的定义是由某种特定的元数据所组成的内聚的包。它描述了一些对象的行为规则,而这些对象就被称为该类的实例。类有接口和结构。接口描述了如何通过方法与类及其实例互操作,而结构描述了一个实例中数据如何划分为多个属性。类是与某个层的对象的最具体的类型。类还可以有运行时表示形式(元对象),它为操作与类相关的元数据提供了运行时支持。 支持类的编程语言在支持与类相关的各种特性方面都多多少少有一些微妙的差异。大多数都支持不同形式的类继承。许多语言还支持提供封装性的特性,比如访问修饰符。类的出现,为面向对象编程的三个最重要的特性(封装性、继承性、多态性),提供了实现的手段。.

新!!: C++和类 (计算机科学) · 查看更多 »

继承 (计算机科学)

继承(inheritance)是面向对象软件技术当中的一个概念。如果一个类別B「继承自」另一个类別A,就把这个B称为「A的子类」,而把A称为「B的父类別」也可以称「A是B的超类」。继承可以使得子类具有父类別的各种属性和方法,而不需要再次编写相同的代码。在令子类別继承父类別的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类別的原有属性和方法,使其获得与父类別不同的功能。另外,为子类追加新的属性和方法也是常见的做法。 一般靜態的物件導向程式語言,繼承屬於靜態的,意即在子類別的行為在編譯期就已經決定,無法在執行期擴充。 有些编程语言支持多重继承,即一个子类可以同时有多个父类別,比如C++编程语言;而在有些编程语言中,一个子类只能继承自一个父类別,比如Java编程语言,这时可以利用接口来实现与多重继承相似的效果。 現今物件導向程式設計技巧中,繼承並非以繼承類別的「行為」為主,而是繼承類別的「型態」,使得元件的型態一致。另外在設計模式中提到一個守則,「多用合成,少用繼承」,此守則也是用來處理繼承無法在執行期動態擴充行為的遺憾。.

新!!: C++和继承 (计算机科学) · 查看更多 »

编程语言

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

新!!: C++和编程语言 · 查看更多 »

美國國家標準協會

--(American National Standards Institute,ANSI)是负责制定美国国家标准的非营利组织。美国国家标准学会授权标准起草机构按照一系列规范编写标准草案。由此产生的候选文献通过ANSI审核批准后成为美国国家标准。 美国国家标准学会是国际标准化组织和国际电工委员会的成员。.

新!!: C++和美國國家標準協會 · 查看更多 »

D語言

D語言是一种程式語言,具备多範型,例如物件導向、指令式。由沃尔特·布莱特和安德烈·亞歷山德雷斯庫所開發,起源自C++,深受C++的影響,然而其不是C++的变种,而是重新设计来自C++的部分特性,并受到其它程式語言觀念的影響,如Java、C#以及Eiffel。2007年1月2日釋出1.0穩定版本。版本2.0釋出於2007年1月17日。 Walter Bright本身是Symantec C++ 編譯器的作者;另一名作者Andrei Alexandrescu是Facebook的研究科学家,他与一个团队用D语言重写一些Facebook的重要操作。.

新!!: C++和D語言 · 查看更多 »

面向对象程序设计

面向对象程序设计(Object-oriented programming,缩写:OOP)是種具有物件概念的程式編程典範,同时也是一种程序开发的抽象方针。它可能包含資料、、程式碼與方法。对象則指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,物件裡的程序可以訪問及經常修改物件相關連的資料。在物件導向程式編程裡,電腦程式會被設計成彼此相關的物件。 面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。目前已经被证实的是,面向对象程序设计推广了程序的灵活性和可维护性,并且在大型项目设计中广为应用。此外,支持者声称面向对象程序设计要比以往的做法更加便于学习,因为它能够让人们更简单地设计并维护程序,使得程序更加便于分析、设计、理解。反对者在某些领域对此予以否认。 当我们提到面向对象的时候,它不仅指一种程序设计方法。它更多意义上是一种程序开发方式。在这一方面,我们必须了解更多关于面向对象系统分析和面向对象设计(Object Oriented Design,简称OOD)方面的知识。許多流行的程式語言是物件導向的,它們的風格就是會透由物件來創出實例。 重要的物件導向程式語言包含Common Lisp、Python、C++、Objective-C、Smalltalk、Delphi、Java、Swift、C#、Perl、Ruby 與 PHP等。.

新!!: C++和面向对象程序设计 · 查看更多 »

類型系統

在计算机科学中,--系統用于定義如何將程式語言中的數值和zh:運算式;zh-tw:運算式;zh-cn:表达式-归類为许多不同的型別,如何操作这些型別,这些型別如何互相作用。型別可以确认一个值或者一组值具有特定的意义和目的(雖然某些型別,如抽象型別和--型別,在----中,可能不表示為值)。型別系統在各種語言之間有非常大的不同,也許,最主要的差異存在於編譯時期的語法,以及執行時期的操作实现方式。 編譯器可能使用值的靜態型別以最佳化所需的儲存區,並選取對值運算時的較佳演算法。例如,在許多C編譯器中,「浮點數」資料型別是以32 位元表示,與IEEE 754規格一致的單精度浮點數。因此,在數值運算上,C應用了浮點數規範(浮點數加法、乘法等等)。 型別的約束程度以及評估方法,影響了語言的型別。更進一步,程式語言可能就型別多態性部分,對每一個型別都對應了一個極度個別的演算法的運算。型別理論研究型別系統,儘管實際的程式語言型別系統,起源於電腦架構的實際問題、編譯器實作,以及語言設計。.

新!!: 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++和计算机科学 · 查看更多 »

计算机程序

计算机程序(Computer Program)是指一组指示计算机或其他具有訊息处理能力装置每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体--结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语(編譯器)同時也會烹饪手法的人(体--结构)来做这道菜。 通常,以英文文本為基礎的计算机程序要经过編譯和連結而成为一种人们不易看清而计算机可解讀的一連串數字的格式,然后放入运行。未经编译就可运行的程序,通常称之为脚本程序(script)。.

新!!: C++和计算机程序 · 查看更多 »

设计模式 (计算机)

在軟體工程中,設計模式(design pattern)是對軟體設計中普遍存在(反覆出現)的各種問題,所提出的解決方案。這個術語是由埃里希·伽瑪(Erich Gamma)等人在1990年代從建筑设计領域引入到計算機科學的。 設計模式並不直接用來完成程式碼的編寫,而是描述在各種不同情況下,要怎麼解決問題的一種方案。面向对象設計模式通常以類別或物件來描述其中的關係和相互作用,但不涉及用來完成應用程式的特定類別或物件。設計模式能使不穩定依賴於相對穩定、具體依賴於相對抽象,避免會引起麻煩的緊耦合,以增強軟體設計面對並適應變化的能力。 並非所有的軟體模式都是設計模式,設計模式特指軟體“設計”層次上的問題。還有其他非設計模式的模式,如。同时,演算法不能算是一種設計模式,因為演算法主要是用來解決計算上的問題,而非設計上的問題。 随着软件开发社群对设计模式的兴趣日益增长,已经出版了一些相关的专著,定期召开相应的研讨会,而且沃德·坎宁安(Ward Cunningham)为此发明了WikiWiki用来交流设计模式的经验。.

新!!: C++和设计模式 (计算机) · 查看更多 »

调用约定

在计算机科学中, 调用约定是一种定义子过程从调用处接受参数以及返回结果的方法的约定。不同调用约定的区别在于:.

新!!: C++和调用约定 · 查看更多 »

贝尔实验室

贝尔实验室(Bell Laboratories),最初是内从事包括电话交换机、电话电缆、半导体等电信相关技术的研究开发机构。地点位于美國新澤西州聯合縣的Murray Hill。.

新!!: C++和贝尔实验室 · 查看更多 »

运算符重载

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

新!!: C++和运算符重载 · 查看更多 »

迭代器

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

新!!: C++和迭代器 · 查看更多 »

藍圖

藍圖(Blueprint),港澳地区又称“蓝纸”,是工程製圖的原图经过描图、晒图和薰图后生成的复制品,因为图纸是蓝色的,所以被称为“蓝图”。蓝图类似照相用的相紙,可以反复复制新图,而且易于保存,不会模糊,不会掉色,不易玷污。 在中文语境中,蓝图一詞通常引申为一种对未来的构想或计划。.

新!!: C++和藍圖 · 查看更多 »

虚函数 (程序语言)

在面向对象程序设计领域,C++、Object Pascal 等语言中有虚函数(virtual function)或虚方法(virtual method)的概念。这种函数或方法可以被子类继承和,通常使用动态调度实现。这一概念是面向对象程序设计中(运行时)-zh:多型;zh-tw:多型;zh-cn:多态-的重要组成部分。简言之,虚函数可以给出目标函数的定义,但该目标的具体指向在编译期可能无法确定。 虚函数在设计模式方面扮演重要角色。例如,《设计模式》一书中提到的23种设计模式中,仅5个对象创建模式就有4个用到了虚函数(抽象工厂、工厂方法、生成器、原型),只有-zh:單體;zh-tw:單體;zh-cn:单例;-没有用到。.

新!!: C++和虚函数 (程序语言) · 查看更多 »

Falcon

Falcon编程语言(The Falcon Programming Language),又稱Falcon P.L.、Falconpl或Falcon,是一个开源、多范式编程语言,其设计和推廣由Giancarlo Niccolai领导。.

新!!: C++和Falcon · 查看更多 »

GCC

GNU编译器套裝(GNU Compiler Collection,縮寫為GCC),指一套编程語言编译器,以GPL及LGPL許可證所發行的自由軟體,也是GNU計畫的关键部分,也是GNU工具链的主要組成部份之一。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。1985年由理查德·马修·斯托曼開始發展,現在由自由軟體基金會負責維護工作。 原名為GNU C語言編譯器(GNU C Compiler),因為它原本只能處理C語言。GCC在发布后很快地得到擴展,變得可處理C++。之後也變得可處理Fortran、Pascal、Objective-C、Java、Ada,Go與其他語言。 許多操作系統,包括許多类Unix系統,如Linux及BSD家族都採用GCC作為标准编译器。蘋果電腦预装的Mac OS X操作系统也採用這個編譯器。 GCC原本用C開發,後來因為LLVM、Clang的崛起,它更快地將開發語言轉換為C++。許多C的愛好者在對C++一知半解的情況下主觀認定C++的性能一定會輸給C,但是Ian Lance Taylor給出了不同的意見,並表明C++不但性能不輸給C,而且能設計出更好,更容易維護的程式(、)。.

新!!: C++和GCC · 查看更多 »

Hewlett-Packard

#重定向 惠普.

新!!: C++和Hewlett-Packard · 查看更多 »

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 · 查看更多 »

Linux

Linux( )是一種自由和開放源碼的類UNIX作業系統。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。,在加上使用者空間的應用程式之後,成為Linux作業系統。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多數Linux系統還包括像提供GUI的X Window之類的程序。除了一部分專家之外,大多數人都是直接使用Linux發行版,而不是自己選擇每一樣組件或自行設置。 Linux嚴格來說是單指作業系統的内核,因作業系統中包含了許多用戶圖形介面和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,內核則改以Linux内核稱之。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将其组合系统命名为GNU/Linux,但Linux不屬於GNU計劃,這個名稱並沒有得到社群的一致認同。 Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。目前Linux已经被移植到更多的计算机硬件平台,远远超出其他任何操作系统。Linux可以运行在服务器和其他大型平台之上,如大型主机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,包括最快的前10名超级电脑运行的都是基于Linux内核的操作系统。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。在移动设备上广泛使用的Android操作系统就是建立在Linux内核之上。 通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其衍生版本Ubuntu、Linux Mint)、Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)和openSUSE等。Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。由于Linux是自由软件,任何人都可以创建一个符合自己需求的Linux发行版。.

新!!: C++和Linux · 查看更多 »

LR剖析器

LR剖析器是一種由下而上(bottom-up)的上下文無關語法剖析器。LR意指由左(Left)至右處理輸入字串,並以最右邊優先衍生(Right derivation)的推導順序(相對於LL剖析器)建構語法樹。能以此方式剖析的語法稱為LR語法。而在LR(k)這樣的名稱中,k代表的是剖析時所需前瞻符號(lookahead symbol)的數量,也就是除了目前處理到的輸入符號之外,還得再向右參照幾個符號之意;省略 (k)時即視為LR(1),而非LR(0)。 由於LR剖析器嘗試由剖析樹的葉節點開始,向上一層層透過文法規則的化簡,最後规约回到樹的根部(起始符號),所以它是一種由下而上的剖析方法。許多程式語言使用LR(1)描述文法,因此許多編譯器都使用LR剖析器分析原始碼的文法結構。LR剖析的優點如下:.

新!!: C++和LR剖析器 · 查看更多 »

Lua

Lua()程序设计语言是一个简洁、轻量、可扩展的脚本语言,Lua在葡萄牙语中的意思是月亮。.

新!!: C++和Lua · 查看更多 »

Microsoft Visual C++

Microsoft Visual C++(简称Visual C++、MSVC、VC++或VC)是微軟公司的C++開發工具,具有集成开发环境,可提供編輯C語言,C++以及C++/CLI等编程語言。VC++整合了便利的除錯工具,特別是整合了微軟Windows视窗操作系统应用程序接口(Windows API)、三维動畫DirectX API,Microsoft.NET框架。目前最新的版本是Microsoft Visual C++ 2017。.

新!!: C++和Microsoft Visual C++ · 查看更多 »

ML

ML可表示:.

新!!: C++和ML · 查看更多 »

ML语言

ML是一个通用的函數式編程语言,它是由爱丁堡大学的Robin Milner及他人在二十世纪七十年代晚期开发的。它的语法是从ISWIM得到的灵感。作为元语言的ML是为了帮助在LCF定理证明机中寻找证明策略而构想出来的。(之前的元语言是pplambda,它联合了一阶逻辑演算和有类型的多态的λ演算)。它使用了Hindley-Milner类型推论算法来推测大多数值的类型,而不需要四处使用注解。 ML一般被归为非纯函数式编程语言,因为它允许副作用和指令式编程。这一点和纯函数式编程语言——例如Haskell——很不一样。 ML特性包括:傳值呼叫(Call by value)的求值策略,一级函数,带有垃圾收集的自动内存管理,参数多态,静态数据类型,类型推论,代数数据类型,模式匹配和异常处理。 不像Haskell,ML使用及早求值,也就是说所有的子表达式总是被求值。导致的一个结果是你不能使用无穷表。然而,惰性求值产生的无穷表可以通过使用匿名函数来模拟。 今天在ML家族中有好几种语言:两种主要的方言是Standard ML和Caml,其他的包括F#-针对Microsoft.NET平台的开放研究项目。ML中的思想影响了众多的语言,例如Haskell,Cyclone和Nemerle。 ML的实力大多被用于语言设计和操作(编译器、分析器、定理证明机),但是它作为通用语言也被用于生化,金融系统,和宗谱数据库,一个P2P的客户/服务器程序等等。.

新!!: C++和ML语言 · 查看更多 »

Perl

Perl是高階、通用、直譯式、動態的程式语言家族。最初设计者拉里·沃尔為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日發表。目前,Perl语言家族包含两个分支Perl 5以及Perl 6(开发中)。 Perl借用了C、sed、awk、shell脚本以及很多其他程式語言的特性。其中最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。 2000年开始,目前拉里·沃尔开始開發Perl 6,來作為Perl的後繼;不過,Perl 6語言的語法有很多轉變,所以Perl 6被視為Perl家族中的另一個語言。 Perl语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。.

新!!: C++和Perl · 查看更多 »

PHP

PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。 PHP最初是由勒多夫在1995年开始开发的;現在PHP的標準由the PHP Group維護。PHP以PHP License作為許可協議,不過因為這個協議限制了PHP名稱的使用,所以和開放原始碼許可協議GPL不相容。 PHP的應用範圍相當廣泛,尤其是在網頁程式的開發上。一般來說PHP大多執行在網頁伺服器上,透過執行PHP程式碼來產生使用者瀏覽的網頁。PHP可以在多數的伺服器和作業系統上執行,而且使用PHP完全是免費的。根據2013年4月的統計資料,PHP已經被安裝在超過2億4400萬個網站和210萬台伺服器上。 PHP在windows上有专门的官方移植编译项目,并且分多个VC编译器版本和线程安全特性来提供不同的版本支持。.

新!!: C++和PHP · 查看更多 »

Printf

#重定向 格式化字符串.

新!!: C++和Printf · 查看更多 »

Qt

Qt(,發音同「cute」)是一个跨平台的C++應用程式開發框架。廣泛用於開發GUI程式,這種情況下又被称为部件工具箱。也可用於開發非GUI程式,比如控制台工具和伺服器。Qt使用於OPIE、Skype、VLC media player、Adobe Photoshop Elements、VirtualBox與Mathematica以及被Autodesk 、歐洲太空總署、夢工廠、Google、HP、KDE、盧卡斯影業、西门子公司、沃尔沃集团, 华特迪士尼动画制作公司、三星集团、飞利浦、Panasonic 所使用。 它是Digia公司的产品。Qt使用標準的C++和特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些巨集。通過語言綁定,其他的程式語言也可以使用Qt。 Qt是自由且開放原始碼的軟體,在GNU較寬鬆公共許可證(LGPL)條款下發布。所有版本都支援廣泛的編譯器,包括GCC的C++編譯器和Visual Studio。.

新!!: C++和Qt · 查看更多 »

Simula

Simula,一種編譯式的程式語言,在1960年代在奧斯陸的挪威電子計算中心(Norwegian Computing Center)開始被發展出來,主要的設計者是奧利-約翰·達爾(Ole-Johan Dahl)與克利斯登·奈加特。被開發了Simula I與Simula 67兩代。它承繼了ALGOL 60的基礎,被認為是第一個物件導向程式設計的程式語言。 Simula影響了Smalltalk以及接下來所有的物件導向程式設計程式語言,如比雅尼·斯特劳斯特鲁普在設計C++語言時,將許多Simula 67的特性引入C++之中。.

新!!: C++和Simula · 查看更多 »

STL

STL是英文的字首縮寫,可以指:.

新!!: C++和STL · 查看更多 »

Sun Studio

Sun Studio為昇陽電腦的旗艦級軟體開發產品,現有Solaris、Linux版本。 包含最新的多核新系統,其提供經過優化的C、C++和Fortran編譯器、函式庫、效能檢測器、除錯器於SPARC架構的Solaris系統和x86/x86-64架構的Solaris、Linux平台。 Sun Studio可於其免費下載。 ""Sun Studio"'以往亦稱作:「Sun WorkShop」、「Forte Developer」,和「SunPro Compilers」。.

新!!: C++和Sun Studio · 查看更多 »

Typename

"typename"是一个C++程序设计语言中的关键字。当用于泛型编程时是另一术语"class"的同义词。这个关键字用于指出模板声明(或定义)中的非独立名称(dependent names)是类型名,而非变量名。以下是对于泛型编程中typename两种迥然不同的用法的解释。.

新!!: C++和Typename · 查看更多 »

UNIX

UNIX,一种计算机操作系统,具有多任务、多用户的特征。于1969年,在美国AT&T公司的贝尔实验室开发類UNIX(UNIX-like)。.

新!!: C++和UNIX · 查看更多 »

抽象化 (計算機科學)

在计算机科學中,抽象化(Abstraction)是將資料與程序,以它的語意來呈現出它的外觀,但是隱藏起它的實作細節。抽象化是用來減少程式的複雜度,使得程式設計師可以專注在處理少數重要的部份。一個電腦系統可以分割成幾個抽象層(Abstraction layer),使得程式設計師可以將它們分開處理。.

新!!: C++和抽象化 (計算機科學) · 查看更多 »

抽象資料型別

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

新!!: C++和抽象資料型別 · 查看更多 »

林纳斯·托瓦兹

林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds,,),生於芬兰赫尔辛基市,擁有美國國籍,Linux内核的最早作者,隨後發起了這個开源项目,擔任Linux內核的首要架構師與專案協調者,是当今世界最著名的电脑程序员、黑客之一。他还发起了Git这个开源项目,并为主要的开发者。.

新!!: C++和林纳斯·托瓦兹 · 查看更多 »

核心

核心可以指:.

新!!: C++和核心 · 查看更多 »

核心語言

核心语言是指编程语言本身和相关标准库的总称。 核心语言中的标识符称为关键字。标准C运行时库和核心JAVA包是两个内核语言中相关标准库的例子。 Category:程序设计语言.

新!!: C++和核心語言 · 查看更多 »

格式化字符串

格式化字符串,是一些程序设计语言在格式化输出API函数中用于指定输出参数的格式与相对位置的字符串参数,例如C、C++等程序设计语言的printf类函数,其中的转换说明(conversion specification)用于把随后对应的0个或多个函数参数转换为相应的格式输出;格式化字符串中转换说明以外的其它字符原样输出。.

新!!: C++和格式化字符串 · 查看更多 »

标准模板库

标准模板库(英文:Standard Template Library,缩写:STL),是一个C++软件库,大量影響了C++标准程序库但並非是其的一部分。其中包含4个组件,分别为算法、容器、函数、迭代器。 模板是C++程序设计语言中的一个重要特征,而标准模板库正是基于此特征。标准模板库使得C++编程语言在有了同Java一样强大的类库的同时,保有了更大的可扩展性。.

新!!: C++和标准模板库 · 查看更多 »

模板

--(,又譯作「範本」)通常指具有固定内容、可构建多个不同实例的可重用样板,也可以指:.

新!!: C++和模板 · 查看更多 »

模板 (C++)

模板(Template)指C++程序设计语言中的函数模板与类模板,是一种参数化类型机制,大体对应于java和C#中的泛型,但也有一些功能上的显著差异(C++模板支持后两者没有明确对应的模板模板参数和模板非类型参数,但不支持Java的通配符以及C#的泛型类型约束)。模板是C++的泛型编程中不可缺少的一部分。 模板是C++程序员绝佳的武器,特別是結合了多重继承与运算符重载之后。C++的标准函数库提供的许多有用的函数大多結合了模板的概念,如STL以及iostream。.

新!!: C++和模板 (C++) · 查看更多 »

模板超編程

模板超編程(Template metaprogramming,縮寫:TMP)是一種超編程技術,編譯器使用模板產生暫時性的源碼,然後再和剩下的源碼混合並編譯。這些模板的輸出包括編譯時期常數、資料結構以及完整的函式。如此利用模板可以被想成編譯期的執行。這種技術被許多語言使用,最為知名的當屬C++,其他還有Curl、D、Eiffel,以及语言扩展,如。.

新!!: C++和模板超編程 · 查看更多 »

比较Java和C++

#重定向 Java和C++的對照.

新!!: C++和比较Java和C++ · 查看更多 »

比雅尼·斯特劳斯特鲁普

比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup,,),生于丹麦奥胡斯郡,计算机科学家。他以创造C++编程语言而闻名,被称为“C++之父”。 用斯特劳斯特鲁普他本人的话来说,自己“发明了C++,写下了它的早期定义并做出了首个--……选择制定了C++的设计标准,设计了C++主要的辅助支持环境,而且负责处理C++标准委员会的扩展提案。”他还写了一本《C++程序设计语言》,它被许多人认为是C++的范本经典,目前是第四版(于2013年5月19日出版),最新版中囊括了C++11所引进的一些新特性。 斯特劳斯特鲁普于1975年获得丹麦奥胡斯大学的数学和计算机科学硕士学位,又于1979年获得英国剑桥大学的计算机科学博士学位。从贝尔实验室大规模编程(Large-scale Programming)研究部门设立至2002年晚些时候,他一直担任那里的负责人。2002年至2014年間,他在德州農工大學工学院擔任資訊科學教授一职。2014年1月起,在紐約市的摩根史丹利技術部門擔任董事總經理(Managing Director),並於哥倫比亞大學資訊科學系擔任客座教授。.

新!!: 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++和泛型 · 查看更多 »

指標 (電腦科學)

在计算机科学中,指標(Pointer),是程式語言中的一类数据类型及其物件或變數,用來表示或儲存一個記憶體位址,這個位址的值直接指向(points to)存在该地址的对象的值。 指標參考(reference)了記憶體中一個位址。通過被稱為指標反參考(dereferencing)的動作,可以取出在那個位址中儲存的值。保存在指標指向的位址中的值,可能代表另一個變數、結構、物件或函數。但是從指標值是無法得知它所參照的記憶體中儲存了什麼資料型別的資訊。可以打个比方,假設將電腦記憶體當成一本書,一張內容記錄了某個頁碼加上行號的便利貼,可以被當成是一個指向特定頁面的指標;根據便利貼上面的頁碼與行號,翻到那個頁面,把那個頁面的那一行文字讀出來,就相當於是對這個指標進行反參考的動作。可做一类比以增强对指针的理解:整形(integral)也是一类数据类型及其物件或變數,可定义具体的数据类型如短整形(short)、长整形(long)、超长整形(long long)、无符号整形(unsigned)等等;也可以用于称呼整形值、整形对象、整形变量等。又如,一个浮点指针(float *),可称作指向了一个浮点类型的对象。 在高級語言中,指標有效的取代了在低階語言(如匯編語言與機器碼)直接使用内存地址。但它可能只適用於合法位址之中。因為指標更貼近硬體,編譯器能夠很容易的將指標翻譯為機械碼,這使指標操作時的負擔較少,因此能夠提高程式的運作速度。 使用指標能夠簡化許多資料結構的實作,例如在遍歷字串,查取表格,控制表格及樹狀結構上。對指標進行複製,之後再解參照指標以取出資料,無論在時間或空間上,都比直接複製及存取資料本身來的經濟快速。指標表示法較為直覺,使程式的表達更為簡潔,同時也能夠提供動態機制來建立新的節點。 在程序編程(procedural programming)中,指標也被用來保存系統呼叫流程,以及動態連結資料庫(DLL)的進入點位址。在物件導向編程中,使用函數指標(Function pointer)來綁定方法(method),常見於虛擬方法表(Virtual method table)中。 但是指標本身也存在一些可被滥用之处,在存取某個資料結構時,可能會超出可用範圍,使軟體或作業系統出現異常,嚴重時可造成當機。利用指標去存取或修改非合法可取用的資料,也可能造成安全性問題。为此,C与C++语言规定指针类型为强类型,即指针值不仅是一个内存地址,同时它的数据类型说明了存在这个地址可以安全访问的地址的范围,例如,float*可以访问4个字节的内存空间,double*可以访问8个字节的内存空间。 許多程式語言中都支援某種形式的指標,最著名的是C語言,但是有些程式語言對指標的運用採取比較嚴格的限制。因為指標的機制比較簡單,其功能可以被集中重新實作成更抽象化的參照(reference)資料形別,如Java一般避免用指针,改為使用參照。.

新!!: C++和指標 (電腦科學) · 查看更多 »

数组

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

新!!: C++和数组 · 查看更多 »

重定向到这里:

C++程序设计语言C++编程语言C++语言ISO/IEC 14882

传出传入
嘿!我们在Facebook上吧! »