Атрибуты 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;}};
Пример обращения:
void Matrix::SomeFunction(){ t=Vector::GetNum();} Объявление друга начинается с ключевого слова friend и может встречаться только внутри определения класса. Так как друзья не являются членами класса, то не имеет значения, в какой секции они объявлены. 7. Заголовочные файлы Типы одного объекта или функции должны быть согласованы во всех их описаниях. Должен быть согласован по типам и входной текст, обрабатываемый транслятором, и связываемые части программы. Есть простой, хотя и несовершенный, способ добиться согласованности описаний в различных файлах. Это: включить во входные файлы, содержащие операторы и определения данных, заголовочные файлы, которые содержат интерфейсную информацию.Средством включения текстов служит макрокоманда #include, которая позволяет собрать в один файл (единицу трансляции) несколько исходных файлов программы. Команда #include "включаемый-файл"заменяет строку, в которой она была задана, на содержимое файла включаемый-файл