vuprosche otnosno Visual C++

8 отговора 0 прегледа
#1

vuprosche otnosno Visual C++

Sega se ucha da programiram na tozi ezik i zapunah na edin problem, koito ne moga da opravia i se draznia veche.
Kak da prehvurliam promenlivi ot dva klasa kato se ima predvid che niamat vruzka po mejdu si(nenaslediavane).
Ako niakoi ima vuzmojnost neka da komentira. Ili da mi pishe na [email protected]

Отговор
в отговор на Griffin #2

Re: vuprosche otnosno Visual C++

Пробвай така.

class1.var = class2.var

или

object1.var = object2.var


:-)))
Преди да питаш прочети малко за ООП.


Отговор
в отговор на Griffin #3

Re: vuprosche otnosno Visual C++

Класовете нямат променливи :-))). Предполагам си искал да кажеш "обекти". За да имаш достъп до данни или методи на някакъв обект ти е необходимо
1. да имаш достъп до самия обект (с referance или указател)
2. В съотвествие с правилата за капсулиране да имаш съответните методи, които ти дават достъп до данните, които искаш или пък самите данни да имат публичен достъп.

И така - намери начин обекта, от който искаш да четеш да бъде известен на обекта в, който искаш да четеш.

Отговор
в отговор на Griffin #4

Re: vuprosche otnosno Visual C++

ne sam oste programist ama da izpitam udovolstvieto i az da kaja na niakoi nesto....

ako ne e s naslediavane ili kak se kazvashe (da deklarirash obekt v class-a),
zavisi kak si gi deklariral(promenlivite)
ako sa 'public' mojesh direktno da dostignesh do tiah kakto niakoi kaza obj.promenliva1=obj2.promenliva2

ako sa 'private' mojesh da dostignesh do promenlivite ako v samia class imash funkcia koito ima dostap do promenlivite v sobstvenia si class i samato funkcia e deklarirana kato 'public' (tazi funkcia sasto si imashe ime...)




Отговор
в отговор на Joro #5

Re: vuprosche otnosno Visual C++

e az povtorih adasha (Joro na bulgarski) pred men .....

Отговор
в отговор на Жopo #6

Re: vuprosche otnosno Visual C++

Едно малко допълнение.
Класовете могат да имат статични променливи.
В този случай не е необходимо да създаваш инстанция на класа за да имаш достъп до статичната променлива. И статичната променлива е една за всички инстанции на класа.
Прочети малко повече за ООП. И ако може с конкретни примери за C++. :-)


Отговор
в отговор на nobody #7

Re: vuprosche otnosno Visual C++

Прав си - пропуснах аспекта със статичните променливи и функции.
В този случай не е необходимо да имаш обект на дадения клас. Достъпа до метода или данните става като се опише пълното им име. Например:
class a;
a::b = 1;
Съответно за функции:
a::f();
Най-често статичните функции се използват за създаване на т.нар. singelton, т.е. когато искаме да сме сигурни, че в програмата има само един обект от дадения клас.

Данните се създават в data сегмента на програмата също както и всички други статични и глобални променливи, но компилатора се грижи за метода на достъп.
За ООП скоро ще станат двуцифрено число години откакто чета и, разбира се продължавам да го правя :-))).
Поздрави.

Отговор
в отговор на Жopo #8

Още

Забравих да спомена една особеност при статичните данни. Тъй като те не са част от обект а са отделен обект те трябва да бъдат декларирани извън декларацията на класа.
Пример:
class a
{
public:
static int iInt;
};

int a::iInt;

След това вече могат да бъдат използвани, например така:
a::iInt = 1;
Ако липсва декларацията извън декларацията на класа ще получиш unresolved external error от linker-a.


Отговор
в отговор на Griffin #9

10x

za otgovorite, no oshte kucam po toia vupros... vse pak sum inat i niama da se otkaja dokato ne go opravia...

Отговор