Друзья-функции и друзья-классы

Атрибуты private, public, protected.

Private: Член класса может быть доступен из любой точки программы для любого метода, который является членом данного или производного класса или абсолютно не связан с данным классом.

Public: Член класса может использоваться только методами того класса, в котором он описан

Protected: To же, что иprivate. Но дополнительно такой член класса может быть использован методами классов, производных от описанного класса. Если нет производных классов, тоprivate и protected идентичны.

Виртуальные методы и полиморфизм.

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

Виртуальный метод

В Си++ вы можете указать, что некоторые методы базового класса, которые будут переопределены в порожденных классах, являются виртуальными. Для этого достаточно указать перед описанием метода ключевое слово virtual. Статический метод не может быть виртуальным. Методы, объявленные в базовом классе виртуальными считаются виртуальными и в порожденных классах.

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

Все сказанное нами не означает, что никак нельзя вызвать виртуальный метод базового класса, если он был переопределен. Виртуальный метод базового класса можно вызвать, если указать его полное имя, включая имя базового класса.

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

Вывод готового графического изображения из файла на форму.

Для вставки графического изображения необходимо добавить на форму компонент Image из палитры компонентов Additional. Вызвать окно редактирования рисунка Picture Editor. С помощью кнопки Load вызвать окно загрузки файла и выбрать картинку из любого файла

Вывод пользователю сообщения.

Используется оператор cout. пример:

#include <iostream.h>

void main(void)

{

cout « "Вывод сообщения";

}

В итоге после компиляции , когда мы запустим программу, на нашем экране появится надпись Вывод сообщения. Текст после cout обязательно заключать в кавычки,иначе копмиляция выдаст ошибку.

Вызов одной формы из другой.

Добавляем в проект форму Form2

В обработчике события нажатия кнопки пишем

Form2 f2=gcnew Form2();

f2->Show();

Друзья-функции и друзья-классы.

Функции-друзья — это функции, не являющиеся функциями-членами и тем не менее имеющие доступ к защищённым и закрытым членам класса. Они должны быть объявлены в теле класса как friend. Например:

class Matrix { ... int t; void SomeFunction(); friend class Vector; ...};...class Vector{ int GetNum(){ return 1;}};

Здесь функция Multiply может обращаться к любым полям и функциям-членам класса Matrix.

Существуют также классы-друзья. Если класс A — друг класса B, то все его собственные (не унаследованные) функции-члены могут обращаться к любым членам класса B. Например:

class Matrix { ... int t; void SomeFunction(); friend class Vector; ...};...class Vector{ int GetNum(){ return 1;}};

Пример обращения:

Наши рекомендации