334 __ ________________________Часть II. Программирование на C++

переменных, а функциональной — посредством функций. Совокупность этих аспектов образует классы.

Объявления функций в классах ничем не отличаются от объявлений вне классов: возвращаемый тип, за ним следует имя функции, список аргументов и завершается вся эта конструкция точкой запятой. То есть

Class INT

{

int j; // простое целое данное-член int GetJ(); // функция-член, иногда называемая методом } •

определяет класс INT с одним данным-членом j и одной функцией-членом GetJ(), возвращающей целочисленное значение. Функции-члены классов иногда называются методами (methods).

Замечание

Пусть вас не путает изобилие синонимов. Человеческой природе свойственно постигать новое, опираясь на уже известное, выискивая в новых концепциях эквиваленты и аналоги знакомых понятий.

Термин "метод" произошел из другого объектно-ориентированного языка — SmallTalk. В этом языке все является объектами, а все функции называются методами. Заимствование этого термина, вероятно, объясняется чьими-то усилиями сделать понятнее идею функций-членов классов.

При разработке классов первым делом следует выявить те данные и функции, которые наиболее полно выражают вашу концепцию.

Сравнение классов и структур

У классов и структур много общего. Структуры пришли из мира структурного программирования С. Классы вводят вас в новый, объектно-ориентированный мир. C++ является надмножеством языка С, так что структуры сохранены в C++ для обеспечения обратной совместимости.

Итак, мы переходим от структурного программирования к объектно-ориентированному, но структуры еще долго будут встречаться вам, как в старых, так и в новых программах. В частности, это обусловлено консерватизмом некоторых программистов, продолжающих сохранять верность С, а также тем, что некоторые сторонники C++ для конструкций, содержащих данные без функций, предпочитают использовать структуры, а не классы.

В синтаксисе классов и структур много общего; мы рассмотрим как сходства, так и различия. Пусть ни то, ни другое не будет вам чуждо, но все-таки вот вам совет: используйте классы всегда, даже для представления наборов данных, не содержащих функций.