banner

言的通用性、可移植性融合在一起,于是他在旧语言的基础上开发了C语言。

1.2.2 C语言编程原理

tips

由于C++在C语言的基础上移植了新的编程理念,因此我们首先来看一看C所遵循的旧的理念。一般来说,计算机语言要处理两个概念——数据和算法。数据是程序使用和处理的信息,而算法是程序使用的方法(参见图1.1)。C语言与当前最主流的语言一样,在最初面世时也是过程性(procedural)语言,这意味着它强调的是编程的算法方面。从概念上说,过程化编程首先要确定计算机应采取的操作,然后使用编程语言来实现这些操作。程序命令计算机按一系列流程生成特定的结果,就像菜谱指定了厨师做蛋糕。这就是所谓一词多义,反映到程序中就是重载。例如:我们说“擦桌子、擦皮鞋、擦车”时,都用了同一个“擦”字,但所使用的方法截然不同。人类完全可以理解这样的语言,因为人们从生活实践中学会了各种不同的“擦”的方法,知道对不同的物品要用对应的“擦”法。所以没有人会罗唆到说“请用擦桌子的方法擦桌子,用擦皮鞋的方法擦皮鞋”。计算机是否也具有同样的能力呢?这取决于所编写的程序。C++语言中提供了对函数重载的支持,使我们在编程时可以对不同的功能赋予相同的函数名,编译时会根据上下文(实参的类型和个数)来确定使用哪一具体功能。

两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形FigCircle(int x,int y,int r):CFigEllipse(x,y,0,0)

{

m_R=r;

}

//根据一个矩形创建圆

CFigCircle::CFigCircle(int x1,int y1,int x2,int y2):CFigEllipse(x1,y1,x2,y2)

{

m_X1=(x2+x1)/2;

m_Y1=(y2+y1)/2;

m_R=((x2-x1)+(y2-y1))/2;

m_R=m_R>0?m_R:-m_R;

}

void CFigCircle::Draw(CDC *pDC)