我们已经了解了什么是OOP,现在来看一下C++在C中添加了什么来支持OOP。扩充的基本概念是类(class)。类描述了对象的形式和行为。它就像一个分类,从中你可以挤出任意多的对象,想要多少都可以。

从语法上讲,C++的类就像C的结构。它有几点直接的扩展之处以便于实现OOP。

一个栈的类如下所示:

class Stack{ //class definition

public: //access specifier

void push(int i); //member function

int pop();

Stack(); //instead of init()

~Stack(); //instead of cleanup()

private: //access specifier

int items[STACKSIZE]; //data member

int top;

};

这个简单的Stack类和在前面“抽象性”一节中说明的同名结构相似。但是要注意,类中包括了Sack的接口函数(在C版本中接口函数是在struct之外的)。这些成员函数使得抽象机制更容易实现,归类为成员函数产生的抽象性。另外,函数init()和cleanup()被成员函数Stack()和~Stack替换了。这些特殊的成员函数会使编译器来替你处理对象的初始化和销毁,会在以后的“构造函数和析构函数产生的更好的抽象性”中介绍这一点。类中还具有public和private这样的标签,这些存取说明符给予了封装形式的灵活性,会在以后的“存取说明符产生的封装性”中进行介绍。还有就是数据成员支持层次化的较简单方式--合并。在这个例子中我们没有提到的OOP的两个搞基概念是派生和多态性,他们是由结构支持的。

如果你定义了类,那么可以按照如下方式使用它:

main ()

{

Stack s;

/*......*/

s.push(s);

/*......*/

i=s.pop();

/*......*/

}

这里s是一个Stack对象。我们像声明变量一样对其进行声明,然后调用s的各种成员函数,所使用的语法和C中使用的相同。

本质上说,类是添加到程序设计语言中的新类型。一旦我们实现了Stack类,就可以像使用语言的内建类型那样使用它。我们称类为用户定义类型,来和语言的内建类型进行区分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值