C++中方法使用哪个类对象
下面介绍使用对象时最重要的一个方面:如何将类方法应用于对象。下面的代码使用了一个对象的shares 成员:
shares += num;
是哪个对象呢?问得好!要回答这个问题,首先来看看如何创建对象。最简单的方式是声明类变量:
Stock kate,joe;
这将创建两个 Stock 类对象,一个为kate,另一个为joe。
接下来,看看如何使用对象的成员函数。和使用结构成员一样,通过成员运算符:
kate.show(); // the kate object calls the member function
joe.show(); // the joe object calls the member function
第1条语句调用 kate对象的show( )成员。这意味着show()方法将把 shares 解释为 kate.shares,将share_vla 解释为 kate.share_val。同样,函数调用joe.show()使show()方法将shares 和 share_val 分别解释为ioe.share和ioe.share val.
注意:调用成员函数时,它将使用被用来调用它的对象的数据成员。参见【0voice C++】
同样,函数调用 kate.sell()在调用 set tot()函数时,相当于调用 kate.set tot(),这样该函数将使用 kate对象的数据。
所创建的每个新对象都有自己的存储空间,用于存储其内部变量和类成员:但同一个类的所有对象共享同一组类方法,即每种方法只有一个副本。例如,假设kate和joe 都是 Stock 对象,则 kate.shares将占据一个内存块,而joe.shares占用另一个内存块,但 kate.show()和joe.show()都调用同一个方法,也就是说,它们将执行同一个代码块,只是将这些代码用于不同的数据。在OOP中,调用成员函数被称为发送消息,因此将同样的消息发送给两个不同的对象将调用同一个方法,但该方法被用于两个不同的对象。