Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

joeybg

Как да взема данни от една член-функция.

Препоръчан отговор


Здравейте,

имам да напиша програма в която имам член-функция за намиране на рождена дата студент от неговото ЕГН и втора член-функция, която намира годините на студента от намерената рождена дата, но не мога да измисля как да взема рождената дата от първата член функция и да я използвам във втората. Ако някой знае нека помага, че цял ден се опитвам да го измисля и не мога, яко съм зациклил на това.

 

Това е което съм написал до момента:

http://pastebin.com/embed_iframe.php?i=G4S8tEDa

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

но не мога да измисля как да взема рождената дата от първата член функция и да я използвам във втората. Ако някой знае нека помага, че цял ден се опитвам да го измисля и не мога, яко съм зациклил на това.

Като извикаш първата член-функция от втората?Между другото класа ти е супер грешно написан, как може всичките член променливи да са публични?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Като извикаш първата член-функция от втората?Между другото класа ти е супер грешно написан, как може всичките член променливи да са публични?

Като допълнение към мнението на колегата - направете метода getRodat() да връща рождената дата, а не както е в момента да е void. 

В този смисъл, за да получите това, което искате, има 3 варианта, за които се сещам в момента:

1) Правите getRodat() да връща рождената дата (както и предложих по - горе)

2) Подавате променливите 'd', 'm' и 'g' като параметри, които попълвате с получените от метода getRodat() данните (Доста грешен подход, по мое мнение, но възможен. Ще трябва параметрите да са указатели).

3) Правите 'd', 'm' и 'g' private член - променливи на класа. Идеята е подходяща, ако самите те биха се ползвали и от други методи в този си вид. Ако ще се ползват само от 1-2 метода, то няма смисъл да се замърсява самия клас с още член-променливи.

 

Отделно, освен за видимостта на променливите, обърнете внимание и на наименованието на методите - get<НЕЩО> предразполага, че метода ще връща данни (Както прави например метода getPol() ) и е доста подвеждащо да се държи като процедура

 

Поздрави !

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

функцията ти getPol() е сбъркана, освен че дава грешен резултат могат да се махнат и някои неща:

int Student::getPol(){               return (EGN[8]%2); }

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Благодаря ви за помощта! Искам да отбележа, че до момента ми давате много добри съвет знам, че имам много грешки, но докато не ми ги каже някой като вас, който се е сблъсквал с тези неща, няма как да разбера, че допускам грешки. Направих променливите публични, защото докато се научим да пишем, ни казаха да ги пишем така за сега, но щом е грешно ще го имам в предвид. Още веднъж ви благодаря.

Когато променя член променливите на private как ще изразя тогава тази проверка addstud.Kurs==2 в функцията, която не е от класа ?


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Използваш get и set функции, за достъп до private член-променливи. 

Пример с Kurs:

int getKurs() {return Kurs;}

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

  • Горещи теми в момента

  • Подобни теми

    • от @deXter
      Задача 1. Даден е символен низ и множество от символи. Да се напише функция, която показва кой е най-често срещаният символ от универсалното множество в символния низ и колко пъти се среща той в низа.
      Вход:
      Множество: { 'e' , 't' , 'i' , 's' }
      Символен низ: "This is one test string!"
      Изход:
      s - 4 //  най-често срещаният символ е s, среща се 4 пъти 
      ----
      Задача 2. Дадени са две множества set1 и set2. Да се намери стойността на най-големия елемент, който принадлежи на второто, но не принадлежи на първото множество.
      Вход:
      Set1: {5, 2, 3, 8, 1, 6, 4, 12, 9, 10}
      Set2: {6, 11, 8, 2, 5}
      Изход:
      11 // най-големият елемент, който принадлежи на второто множество, но не принадлежи на първото
      ----
      Задача 3. Да се напише функция на C++, която приема като аргумент универсалнот множество от символи и произволно множество от символи. Функцията да определя, колко премахвания на елементи от второто множество трябва да направим, за да го сведем до подмножество на универсалното.
      Вход:
      a b c e // универсалното множестов
      a x f b c d a r w h // произволното множество
      Изход:
      7
      ----
      Задача 4. Да се напишат функции на C++, които събира и изважда дроби, като представя резултата във вид на несъкратима дроб.
      Вход: 1/2 + 1/3  Изход:  5/6
      Вход:  2/3 - 4/5  Изход:  -2/15
      ----
      Задача 5. В посолство работят извстен брой служители, като всеки от тях говори един или два чужди езика. От служителире E - знаят английски, G - немски, F - френски, S - испански, а освен това EG използват едновременно и английски и немски, EF - английски и френски, GS - немски и испански. Колко служители работят в посолството?
      Вход:
      E = 26, G = 23, F = 15, S = 11
      EG = 8, EF = 7, GS = 6
      Изход:
      54
      ----
      Задача 6. Дадени са множество от символи и символен низ. Да се напише функция, която кодира най-често срещания символ от множеството в текста, като го разменя с най-рядко срещания.
      Вход:
      Множество: { 'e' , 't' , 'i' , 'o' }
      Символен низ: "this is one test string!"
      Изход:
      t е най-често срещаният символ, който принадлежи на множестото
      o е най-рядко срещаният символ, който принадлежи на множеството
      ohis is tne oeso soring!
      ----
      Моля, помогнете! Спешно е.
      Благодаря предварително!
    • от силвия димитрова стефанова
      Здравейте искам да попитам на  тази задача дали е така решението:
      Дефинирайте константи F със стойност 8.2345 и K със стойност 50.
      const int  F = 8.2345
      const float K = 50
      ____________________
      #define F 8.2345
      #define K 50
      Кое е вярно?
    • от силвия димитрова стефанова
      Здравейте! Искам да Ви попитам Какво ще се изведе, след изпълнението на следния програмен фрагмент и да ми обясните как се решава ? Може да глупав въпроса ми но ще ви бъда много благодарна.  
      int s=0, n=5;
      for(int i=1 ; i<=n ; i++)
      s+=i;
      cout<<s;
    • от силвия димитрова стефанова
      Имам един въпрос. Какво се получава int/int ? 
    • от силвия димитрова стефанова
      Здравейте! Може ли да ми кажете къде ми е грешката на този код: 
      void AktulizaciqNaZapisiPoMarkaModel(Telefon oFlat[], int iTelefonCount) //актулизация на записи по въведена марка { system("cls"); int TelMarka; int iBr = 0; cout << "Въведете марка на телефон: " << endl; cin >> TelMarka; for (int i = 0; i < iTelefonCount; i++) { int NovaTelMarka; cout << "Моля въведете новата марка: "; cin >> NovaTelMarka; oFlat[i].marka = NovaTelMarka; iBr++; } if (iBr == 0) { //ако е нула няма запис cout << "Не бяха намерени записи за промяна по задените параметри! " << endl; } else { ofstream File("Tel.dot"); //писане във файл for (int i = 0; i < iTelefonCount; i++) { //записвам целия масив във файла САМО АКО има съвпадение с подаденият, като параметър! File << oFlat[i].model << " " << oFlat[i].cena << " " << oFlat[i].cvqt << " " << oFlat[i].diagonal << " " << oFlat[i].raz_vgr_pam << " " << oFlat[i].sim << " " << endl; } File.close(); //затваряне на файла cout << "Промените бяха приложени ! \n"; //извеждане на екрана } } Трябва да редактирам марката на телефона. 
      Това на снимката е като го отворя.
      БЛАГОДАРЯ ПРЕДВАРИТЕЛНО!

  • Дарение

×
×
  • Добави ново...