C++中的类与成员函数 - 面向对象编程基础

需积分: 44 0 下载量 68 浏览量 更新于2024-08-19 收藏 2.25MB PPT 举报
"C的结构中不含有成员函数。-软件学院C++" 本文主要讨论了C++中的类和对象的概念,以及它们与C语言的区别。C++作为一种强大的编程语言,扩展了C语言的功能,引入了面向对象编程的概念,而C语言的结构体则不包含成员函数。 在C++中,类(class)是定义对象(object)的基础,它不仅包含数据成员(data member),如变量,还包含了成员函数(member function),也就是方法。这些成员函数用于操作和处理类中的数据成员。例如,描述中的`Savings`类就定义了一个`deposit`成员函数,用于处理账户的存款操作,并返回新的余额。类的声明并不会分配内存空间,只有在创建对象时才会为数据成员分配内存。 在C++中,对象是类的实例,它们可以直接调用类中定义的成员函数。如示例所示,`Savings a`和`Savings b`是`Savings`类的对象,`a.deposit(100)`这样的语句就是通过对象调用成员函数。同时,也可以通过指针来调用成员函数,例如`pa->deposit(200)`,这里的`->`操作符用于指针访问对象的成员。 在C语言中,结构体(struct)仅包含数据成员,没有成员函数。这意味着在C语言中,如果需要对结构体的数据进行操作,必须通过单独的普通函数来实现,这些函数并不直接属于结构体。这与C++的面向对象特性相去甚远,因为C++的成员函数可以直接访问并操作对象的私有数据,提供了更高的封装性和抽象性。 C++的产生是为了克服C语言在处理大型复杂程序时的局限性,尤其是对模块化和代码重用的支持。Bjarne Stroustrup在C的基础上增加了类、继承、多态等面向对象编程的特性,使得C++成为一种混合型语言,既支持过程性编程,又支持面向对象编程。 面向过程编程是基于步骤和函数的编程模型,关注如何将解决问题的步骤分解并逐一实现。而面向对象编程则更注重于实体(即对象)的交互,对象封装了数据和操作数据的方法,通过对象之间的交互来完成任务。C++中的继承和多态特性进一步增强了代码的复用和灵活性。 总结来说,C++的类和对象是其面向对象特性的重要组成部分,与C语言的结构体有显著区别,C++的类可以包含成员函数,提供了一种更高级别的抽象和封装,从而更好地管理和组织代码。