Наслідування класів в C++/cli




НазваНаслідування класів в C++/cli
старонка1/7
Дата канвертавання18.11.2012
Памер264.69 Kb.
ТыпДокументы
  1   2   3   4   5   6   7

  1. Перевантаження операцій в C++/CLI.

  • Окрім уже відомих не можна перевантажувати gcnew.

  • Немає дружніх функцій.

  • Функції, які реалізують перевантажені операції, можуть бути або static ( з двома параметрами) або методами класів з одним параметром.

  • #include "stdafx.h"

using namespace System;

value class comp {

private: double Re,Im;

public: comp(double a,double b):Re(a),Im(b) { }

comp& operator+=(comp& a) {

Re+=a.Re;

Im+=a.Im;

return *this;

}

static comp operator+(comp& a,comp& b) {

comp v;

v.Re=a.Re+b.Re;

v.Im=a.Im+b.Im;

return v;

}

virtual String^ToString() override {

return "Re= "+Re+" Im= "+Im;

}

};

void main(array ^args) {

comp c1(-1.2,-2), c2(-1,-2);

comp c3; c3=c1+c2;

Console::WriteLine(L"For c3 {0}",c3);

c1+=c3;

Console::WriteLine("For c1 {0}",c1);

}





  1. Наслідування класів в C++/CLI.


Усі класи похідні від System::Object.

При потребі, щоб фундаментальні типи вели себе як об’єкти, на ці об’єкти можна посилатися по дескриптору System::Object^.

Базовим може бути лише ref class.

За іменем абстрактного класу пишеться слово abstract

ref class figure abstract {

protected: double plo, perimetr;

public: virtual double s() abstract;

};

virtual – функція в базовому класі має вид:

virtual тип імя(типи _параметрів)

У абстрактному класі пишеться abstract

virtual тип імя(типи _параметрів) abstract

virtual – функція в похідному класі має вид:

virtual тип імя(типи _параметрів) override { }

Базовий клас для похідного завжди public .

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

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

#include "stdafx.h"

using namespace System;

ref class man {

protected: String^name; int age;

public: virtual void vvod() { String^s;

Console::WriteLine("Enter name");

name=Console::ReadLine();

Console::WriteLine("Enter age");

s=Console::ReadLine();

age=Convert::ToInt32(s);

}

virtual String^ToString() override

{

return "name is "+ name+ " age is "+age;

} };

ref class student: man {

String^group;

public: virtual void vvod( ) override {

Console::WriteLine("Enter group");

group=Console::ReadLine();

}

virtual String^ToString() override { return "group is "+ group; } };


  1. Класи значень в C++.CLI.


- Об’єкти value class (класу значень) по замовчуванню розміщуються в стеку.

- Змінні типів value class містять власні дані

- Покажчик this для value class є interior_ptr.

Змінна (об’єкт) типу value class створюється в стеку і зберігає своє значення БЕЗПОСЕРЕДНЬО. Можна розмістити його і в кучі CLR.

Автоматично створюється конструктор БЕЗ параметрів. В ньому усі елементи даних ініціалізуються в списку нулями або nullptr для дескрипторів. Не можна його заміняти власним конструктором без параметрів.

Не можна створювати власний конструктор копіювання.

Не можна перевантажувати operator = . Об’єкти value class копіюються простим копіюванням полів.

Конструктори із параметрами перевантажувати МОЖНА.


Класи посилань в C++.CLI

Він не має конструктора копіювання і перевантаженого operator = .

Не має обмежень які властиві value class.

Пам’ятати, що об’єктами ref class являються відслідковувані дескриптори.


#include "stdafx.h"

using namespace System;

ref class Box {

private: double length, width, height, volume;

public: Box() { length=1; width=1; height=1; }

Box(double l,double w, double h): length(l), width(w), height(h) { }

void v() { volume=length*width*height; }

void out( ) { Console::WriteLine("Volume={0}",volume); }

};

void main(array ^args) {

Box ^ x; x=gcnew Box;

Box^y=gcnew Box(1.2, 2, 3.5);

x->v( );

x->out( );

y->v( );

y->out( );

}


  1   2   3   4   5   6   7

Дадаць дакумент у свой блог ці на сайт

Падобныя:

Наслідування класів в C++/cli iconПогоджено Затверджено Завідуюча районним методкабінетом Начальник відділу
...

Наслідування класів в C++/cli iconВірний син україни
України, соратника Степана Бандери, ідеолога українського націоналізму Ярослава Стецька. Його революційна діяльність, життєвий шлях...

Наслідування класів в C++/cli iconКриворізька спеціалізована школа №9 з поглибленим вивченням суспільно – економічних дисциплін ви ховний захід підготувала: вчитель початкових класів Кочерга Наталія Миколаївна
Я, вчитель початкових класів ксш №9, Кочерга Наталія Миколаївна, презентую вашій увазі міні – театр «Молодці». Щоб зробити економіку...

Наслідування класів в C++/cli iconСвітова література
Зно) розроблено з урахуванням чинних програм зі світової літератури для 5–9 класів (лист Міністерства освіти І науки України №1/11-6611...

Наслідування класів в C++/cli iconПрограма зі штукатурно-малярної справи для 9-х класів допоміжної школи складена на основі програми 8-го класу допоміжної школи програма «Трудовое и профессиональное обучение»
Актуальність складання даної програми обумовлена відсутністю державних програм зі штукатурно-малярної справи для 9-х класів допоміжних...

Наслідування класів в C++/cli iconМацько Л.І.,Семеног О. М. Програма з української мови для профільного навчання учнів 10-12 класів
Розробки уроків відповідають змісту програми Мацько Л.І.,Семеног О. М. Програма з української мови для профільного навчання учнів...

Наслідування класів в C++/cli iconПрограма для загальноосвітніх навчальних закладів (класів) з поглибленим вивченням української мови. 8-9 класи
Програма для загальноосвітніх навчальних закладів (класів) з поглибленим вивченням української мови. 8-9 класи / Програму підготували...

Наслідування класів в C++/cli iconСписки вчителів початкових класів

Наслідування класів в C++/cli iconЗавдання по підготовці до всеукраїнської учнівської олімпіади з географії для учнів 9 -Х класів
Завдання по підготовці до всеукраїнської учнівської олімпіади з географії для учнів 9 –х класів

Наслідування класів в C++/cli iconЗавдання по підготовці до всеукраїнської учнівської олімпіади з географії для учнів 8 -Х класів
Завдання по підготовці до всеукраїнської учнівської олімпіади з географії для учнів 8 –х класів

Размесціце кнопку на сваім сайце:
be.convdocs.org


База данных защищена авторским правом ©be.convdocs.org 2012
звярнуцца да адміністрацыі
be.convdocs.org
Галоўная старонка