Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Робочий проект

Метод Зеева-Лемпела | Процедура кодування | Поцедури декодування | Тестування та та налагоджування роботи сайту | Налагодження програм. | Программа та методика тестування | Методика тестування |


Читайте также:
  1. III. Етап проектування
  2. Авангард и театр. Театральные проекты художников русского авангарда (1910-1920-е гг.). Дягилевские сезоны (1915-1929)
  3. Алгоритм выполнения проекта
  4. АНАЛИЗ ЧУВСТВИТЕЛЬНОСТИ ПРОЕКТА ПРИ РАЗЛИЧНЫХ ОБЪЕМАХ РЕАЛИЗАЦИИ УСЛУГ
  5. Атомный проект: оружие будущего
  6. Атомный проект: оружие будущего
  7. Б 21. Проективные методы. Достоинства и недостатки.

 

Розробити веб-додаток для складання словника з урахуванням експертної оцінки.

Словник повинен знаходити та перекладати слова на декілька мов а саме:

Англійску;

Німецьку;

Французьку;

Українську;

Російську.

Аналіз перетворення

Будь конструктор, який може бути викликаний з рівно одним аргументом, визначає перетворення типу аргументу в тип класу. Для прикладу подивіться на наступні прототипи конструкторів для класу Star:

Star (const char *);

// преобразует char * в Star Star (const Spectral &, int memЬers = 1);

// преобразует Spectral в Star

Конструктори перетворення використовуються, скажімо, коли преутворений тип передається функції, яка була визначена як приймаюча клас в якості аргументу. Наприклад, розглянемо наступне:

Star north; north = "polari s ";

Другий оператор активізує функцію Star:: ope rator = (const Star &), використовуе Star:: Star (const char *) для створення об'єкту Star, який буде при замінений в якості аргументу для функції операції присвоювання. При цьому передбачається, що ви не визначали операцію пріспаіванія (char *) для Star.

Включення вираження expl icit в прототип для одноаргументного конструктора блокує неявне перетворення, однак допускає явні:

class Star

….

public:

explicit Star (const char *);

….

);

Star north;

north = "polaris"; // не допускается

north = Star (" polaris "); // допускается

Для перетворення об'єкта класу в якийсь інший тип визначається функція перетворення. Функція перетворення - це метод класу без аргумента або з оголошеним повертаним типом; ім'я цієї функції збігається з типом, в який потрібно перетворити. Незважаючи на відсутність оголошеного з

повертаемого типу, функція повинна повертати необхідну перетворене значення.

Ось кілька прикладів:

Star:: Star douЬl e () {...) // преобразует star в douЬle

Star:: Star const char * () {...) // преобразует char в const

Ви повинні проявляти розсудливість щодо таких функцій, застосовуючи їх тільки в тих випадках, коли вони дійсно корисні. Також в деяких разработ як класів наявність функцій перетворення збільшує ймовірність написання неоднозначного коду. Наприклад, припустимо, що визначаєте перетворення douЬle для типу vector за допомогою наступного коду:

vector ius (6.0, 0.0);

vector lux = ius + 2 0.2; // не визначений

Компілятор може перетворити ius в double і застосувати додавання double, або перетворити 2 0.2 в vector (використовуючи один із конструкторів) і застосувати додавання vector. Насправді він нічого не зробить і проінформує вас про неоднозначну конструкцію.


Дата добавления: 2015-07-11; просмотров: 62 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Концептуальна модель бази данних| Вимоги до системи в класах

mybiblioteka.su - 2015-2024 год. (0.005 сек.)