vuprosche otnosno Visual C++
8 отговора
0 прегледа
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]
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]
Re: vuprosche otnosno Visual C++
Пробвай така.
class1.var = class2.var
или
object1.var = object2.var
:-)))
Преди да питаш прочети малко за ООП.
class1.var = class2.var
или
object1.var = object2.var
:-)))
Преди да питаш прочети малко за ООП.
Re: vuprosche otnosno Visual C++
Класовете нямат променливи :-))). Предполагам си искал да кажеш "обекти". За да имаш достъп до данни или методи на някакъв обект ти е необходимо
1. да имаш достъп до самия обект (с referance или указател)
2. В съотвествие с правилата за капсулиране да имаш съответните методи, които ти дават достъп до данните, които искаш или пък самите данни да имат публичен достъп.
И така - намери начин обекта, от който искаш да четеш да бъде известен на обекта в, който искаш да четеш.
1. да имаш достъп до самия обект (с referance или указател)
2. В съотвествие с правилата за капсулиране да имаш съответните методи, които ти дават достъп до данните, които искаш или пък самите данни да имат публичен достъп.
И така - намери начин обекта, от който искаш да четеш да бъде известен на обекта в, който искаш да четеш.
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...)

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...)
Re: vuprosche otnosno Visual C++
e az povtorih adasha (Joro na bulgarski) pred men .....
Re: vuprosche otnosno Visual C++
Едно малко допълнение.
Класовете могат да имат статични променливи.
В този случай не е необходимо да създаваш инстанция на класа за да имаш достъп до статичната променлива. И статичната променлива е една за всички инстанции на класа.
Прочети малко повече за ООП. И ако може с конкретни примери за C++. :-)
Класовете могат да имат статични променливи.
В този случай не е необходимо да създаваш инстанция на класа за да имаш достъп до статичната променлива. И статичната променлива е една за всички инстанции на класа.
Прочети малко повече за ООП. И ако може с конкретни примери за C++. :-)
Re: vuprosche otnosno Visual C++
Прав си - пропуснах аспекта със статичните променливи и функции.
В този случай не е необходимо да имаш обект на дадения клас. Достъпа до метода или данните става като се опише пълното им име. Например:
class a;
a::b = 1;
Съответно за функции:
a::f();
Най-често статичните функции се използват за създаване на т.нар. singelton, т.е. когато искаме да сме сигурни, че в програмата има само един обект от дадения клас.
Данните се създават в data сегмента на програмата също както и всички други статични и глобални променливи, но компилатора се грижи за метода на достъп.
За ООП скоро ще станат двуцифрено число години откакто чета и, разбира се продължавам да го правя :-))).
Поздрави.
В този случай не е необходимо да имаш обект на дадения клас. Достъпа до метода или данните става като се опише пълното им име. Например:
class a;
a::b = 1;
Съответно за функции:
a::f();
Най-често статичните функции се използват за създаване на т.нар. singelton, т.е. когато искаме да сме сигурни, че в програмата има само един обект от дадения клас.
Данните се създават в data сегмента на програмата също както и всички други статични и глобални променливи, но компилатора се грижи за метода на достъп.
За ООП скоро ще станат двуцифрено число години откакто чета и, разбира се продължавам да го правя :-))).
Поздрави.
Още
Забравих да спомена една особеност при статичните данни. Тъй като те не са част от обект а са отделен обект те трябва да бъдат декларирани извън декларацията на класа.
Пример:
class a
{
public:
static int iInt;
};
int a::iInt;
След това вече могат да бъдат използвани, например така:
a::iInt = 1;
Ако липсва декларацията извън декларацията на класа ще получиш unresolved external error от linker-a.

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