C++的发展

C++——结合了汇编语言和高级语言优点的产物

产生的背景:

1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将BCPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。 而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。即是著名的ANSI C。而C++就是以ANSI C为基础进行开发的。

产生的过程:

1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。

这里写图片描述

C++特点:

C++语言既保留了C语言的有效性、灵活性、便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,可方便地构造出模拟现实问题的实体和操作;编写出的程序具有结构清晰、易于扩充等优良特性,适合于各种应用软件、系统软件的程序设计。用C++编写的程序可读性好,生成的代码质量高,运行效率仅比汇编语言慢10%~20%。

C++的影响:

首先c++是c语言的升级版本,c++最大的特点就是 面向对象编程,在解决问题的时候更加容易。能把复杂的问题进行抽象、封装继承多态,是c++的三大特性。总体来讲给人们带来的影响就是可以使得复杂问题简单化,不用再面向过程编程了!
这里写图片描述

C++代码实例:

#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
char s[110];
char s1[110];
char s2[110];
int a[4][4];
int b[4][4];
bool ok()
{
    for (int i = 1; i <= 3; i++)
        for (int j = 1; j <= 3; j++)
            if (a[i][j] != b[i][j]) return false;
    return true;
}
int main()
{
    while (scanf ("%s", s) != EOF)
    {
        for (int i = 0; i < 6; i++)
        {
            s1[i] = s[i];
            s2[i] = s[i + 6];
        }
        memset (a , -1 , sizeof (a) );
        memset (b , -1 , sizeof (b) );
        int t1, t2;
        for (int i = 0; i < 3; i++)
        {
            if (s1[i] == 'r') t1 = 1;
            if (s1[i] == 'g') t1 = 2;
            if (s1[i] == 'b') t1 = 3;
            if (s1[5 - i] == 'r') t2 = 1;
            if (s1[5 - i] == 'g') t2 = 2;
            if (s1[5 - i] == 'b') t2 = 3;
            a[t1][t2]++;
            a[t2][t1]++;
        }
        for (int i = 0; i < 3; i++)
        {
            if (s2[i] == 'r') t1 = 1;
            if (s2[i] == 'g') t1 = 2;
            if (s2[i] == 'b') t1 = 3;
            if (s2[5 - i] == 'r') t2 = 1;
            if (s2[5 - i] == 'g') t2 = 2;
            if (s2[5 - i] == 'b') t2 = 3;
            b[t1][t2] ++;
            b[t2][t1] ++;
        }
        if (ok() )
            printf ("TRUE\n");
        else
            printf ("FALSE\n");
    }
    return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值