Версия, подходяща за принтиране
Кликни тук, за да видиш темата в оригиналният и вид
BG Development Форуми > Windows API и MFC > Проблем с Add Variable..


Публикувано от: makka89 23-06-2018, 19:38
Здравейте добри хора.Наскоро преинсталирах виндоус(преди 2 дни) и качих последната версия на ВС ,и всичко си беше ок докато не стигнах да добавя променлива в класа.Там липсват както категория , така и max char ,min/max value.Търсих из нета но не успях да намеря решение ,ако някои има някъкви идеи ,как да ги добавя ,ще съм много благодарен...
user posted image

Публикувано от: SuN 23-06-2018, 22:57
Опита ли ръчно да я добавиш?

От малкия ми опит с глупавото ИДЕ - нито един помощник няма да ти върви като хората, докато не се научиш да правиш на ръка нещата.

Публикувано от: makka89 24-06-2018, 00:20
QUOTE (SuN @ 23-06-2018, 22:57)
Опита ли ръчно да я добавиш?

От малкия ми опит с глупавото ИДЕ - нито един помощник няма да ти върви като хората, докато не се научиш да правиш на ръка нещата.

Дам за съжаление ми се наложи ,така да добавям ,но е доста досадно и обърква понякога. В тази https://developercommunity.visualstudio.com/content/problem/208727/mfc-class-wizard-cant-add-control-member-variables.html , от МС уж казват ,че са ги добавили отново ,но в клас уизарда при мен нещо ги няма.Само с ляв бутон върху дадената функция става ,но пак по бързо от горе от колкото да се търси дадената функция поне за мен.


Публикувано от: SuN 24-06-2018, 01:00
Помощниците автоматизират работата, която *трябва* да може да свършиш и сам. Разумно е да си помисли човек, че те са ефективни чак когато овладееш езика и средата.

Грешките ти бяха свързани с нуждата да се смени типа на променливата (тоест да се направи нов тип променлива, която да представлява същата стойност, но по друг начин).

За ЦСтринг колегите може да кажат със сигурност, но аз не бих го ползвал освен когато е нужно за някое уиндолс апи. В останалите случаи бих си държал текста в стандартен стринг и при необходимост ще го обърна до CString.

Публикувано от: makka89 24-06-2018, 01:40
QUOTE (SuN @ 24-06-2018, 01:00)
Помощниците автоматизират работата, която *трябва* да може да свършиш и сам. Разумно е да си помисли човек, че те са ефективни чак когато овладееш езика и средата.

Грешките ти бяха свързани с нуждата да се смени типа на променливата (тоест да се направи нов тип променлива, която да представлява същата стойност, но по друг начин).

За ЦСтринг колегите може да кажат със сигурност, но аз не бих го ползвал освен когато е нужно за някое уиндолс апи. В останалите случаи бих си държал текста в стандартен стринг и при необходимост ще го обърна до CString.

Благодаря! Грешката се оказа в подредбата при архива явно има значение ,как са подредени ,когато ги направих първите три да са от стринга се оправиха нещата...

CODE
      CString strMark, strName, strCN;
            int nYear, nKm, nCount;
            bool bAutocamp;
            
            ar >> nCount;
            for (int i = 0; i < nCount; i++)
            {
                  ar >> strMark >> strName >> strCN >> nYear >> bAutocamp >> nKm;
                  Add(strMark,strName, strCN,nYear,bAutocamp,nKm);
            }

Публикувано от: Дон Реба 24-06-2018, 06:09
QUOTE (SuN @ 24-06-2018, 01:00)
Помощниците автоматизират работата, която *трябва* да може да свършиш и сам. Разумно е да си помисли човек, че те са ефективни чак когато овладееш езика и средата.

Грешките ти бяха свързани с нуждата да се смени типа на променливата (тоест да се направи нов тип променлива, която да представлява същата стойност, но по друг начин).

За ЦСтринг колегите може да кажат със сигурност, но аз не бих го ползвал освен когато е нужно за някое уиндолс апи. В останалите случаи бих си държал текста в стандартен стринг и при необходимост ще го обърна до CString.

cstring e най-добрия библиотечен стринг който съм срещал. sizeof(CString) е колкото sizeof(char*) и може да реинтерпретираш цстринг като чар* и това учудващо работи. когато забелязах тая работа бях като треснат и не можех да си обясня как изобщо е възможно. всички останали библиотечни стрингове са по-големи, стд стринга гледам е 32 байта.

Публикувано от: Дон Реба 24-06-2018, 06:17
QUOTE (makka89 @ 23-06-2018, 19:38)
Там липсват както категория , така и max char ,min/max value.

май говориш за променлива която в диалогов клас държи някоя контрола? то няма голяма файда от тая функция на идето, аз като бях новобранец колко често люшках данните напред назад само за да ги вкарам/изкарам от диалог, лошо ми става, а сега направо бутам оригиналните данни в DDX_ макроса и всичко спи.
аз от студио 6 насам съм се примирил че идето става все по-зле, но от тия автоматики единствената която липсва е добавянето на функця. С++ е досаден език - има декларации. всяка функция се пише два пъти, което тласка хората към практиката да пишат код по хедърите и да раздуват времето за компилация до небесата. вс6 беше, момент, грешка, Е много благо в това отношение, защото има удобно добавяне на функция през идето, което бачка чудесно, за разлика от новите студия, които искат попълване на бланка все едно си на гише в държавната администрация

Публикувано от: makka89 24-06-2018, 08:01
Да прав си за това ги ползвам. Просто съм още нооб и така съм свикнал ,а иначе DDX го ползвам за да редактирам някоя по бързо е. А сега с тази версия е доста бъгаво, когато добавиш член данни към функция с десен бутон в клас вюто и ти копира още един път функцията и дава грешка чак ,когато комплираш. Това ако си направил 4-5 класа с по няколко функции... Но може и при мен да е проблема незнам. Но иначе мфц е приятно за работа жалко е ,че не срещам почти обяви за работа за него.

Публикувано от: Дон Реба 24-06-2018, 09:04
QUOTE (makka89 @ 24-06-2018, 08:01)
А сега с тази версия е доста бъгаво, когато добавиш член данни към функция с десен бутон в клас вюто

всяка следваща е все по-бъгава, и подозирам голяма част от бъговете са концентрирани точно около клас вюто и интелисенса. интелисенса видимо няма влошаване спрямо ЕТАЛОНА (но пак подозирам че има сериозназаслуга за зависванията), обаче класвюто беше явно пренаписано от 0 и от тогава никога не си стъпи на краката, като най-зле беше към 2005.

Публикувано от: makka89 24-06-2018, 21:20
QUOTE
всяка следваща е все по-бъгава, и подозирам голяма част от бъговете са концентрирани точно около клас вюто и интелисенса


Щом на новобранец ,като мен му прави впечатление и е потвардено от професионалист с дългогодишен опит нещата не са на добре...

Малко офф топик..
Някъква идея , как да свържа струтктури примерно имам 1 главна и 3 второстепенни , след което правя диалогова кутия за главната и в нея имам 3 радио бутона ,с които при избиране на някой викам определна структура от второстепенните и записвма данните за всичко в линкед лист примерно...Пробвах , търсих и не успявам да навържа нещата , сори за глупавия въпрос ,но не съм го правил до сега.

CODE

truct Person // главна структура
{
      CString strName;
      CString strEgn;
      int nAge;
      int nPersonType;
      Person *pNext; // указател за линкед листа
};
struct Boss
{
      
      int nDegreeType;
      CString strSpecialty;
      
};
struct HR
{
      
      
      
      CString strDepartment;
      int nService;
      
};
struct Employee
{
      
      int nEducation;
      CString strPosition;
      int nSelary;
      
};

// Това съм направил за добавянето
void CPersonDoc::Add(CString strEgn, CString strName, int nAge, int nPersonType, int nDegreeType, CString strSpecialty, CString strDepartment, int nService, int nEducation, CString strPosition, int nSelary)
{
      // TODO: Add your implementation code here.
      Person *p = new Person;
      p->strEgn = strEgn;
      p->strName = strName;
      p->nAge = nAge;
      p->nPersonType = nPersonType;
      
      
}

Публикувано от: Дон Реба 25-06-2018, 06:42
QUOTE
Щом на новобранец ,като мен му прави впечатление и е потвардено от професионалист с дългогодишен опит нещата не са на добре...


нема се шашкаш, всяко нещо си има разцвет, упадък и смърт, така че нещата са си по натуралния ред, и нищо странно няма.

за радиобутоните - не ми е много ясно какво точно питаш. как да провериш радиобутоните? как да пазиш данните? ако е първото - аз радиобутони не ползвам (заемат много място и трудно се правят), но ако държиш да е с радиобутони мисля че проверката за чек е същата като на обикновения чекбокс, примерно ((CButton*)GetDlgItem(IDC_OPTION1))->GetCheck(). ако не държиш да е с радиобутони, ползвай комбо бокс, има много предимства: по-лесно се прави, не заема място, можеш да добавяш опции рънтайм без да се налага да преоразмеряваш диалога, имаш прост инт (селектираната опция) който може да сложиш в switch а не да проверяваш за чекване.
за данните - просто Boss,HR,Employee трябва да наследяват Person, което става просто като след името се добави : public Person , това е. вместо new Person трябва да имаше според избраната опция new Boss или new HR или квото там. зубърите ще ти кажат че трябва конструктора на Person да се направи прайват, за да не можеш изобщо да викаш new Person, но това са зубрашки педерастии, добре е да ги знаеш за да се преструващ пред даскали и изпитващи на добро дете, но реално само пречат

Публикувано от: dvader 25-06-2018, 07:51
В MFC радиобутоните се четът като integer променлива, която е индекс на активния радиобутон, спрямо първия в групата.

Ref:
DDX_Radio

Публикувано от: Дон Реба 25-06-2018, 08:05
това е удобство да, все пак остава недостатъка че заемат много място

Публикувано от: makka89 25-06-2018, 13:39
QUOTE (Дон Реба @ 25-06-2018, 06:42)
QUOTE
Щом на новобранец ,като мен му прави впечатление и е потвардено от професионалист с дългогодишен опит нещата не са на добре...


нема се шашкаш, всяко нещо си има разцвет, упадък и смърт, така че нещата са си по натуралния ред, и нищо странно няма.

за радиобутоните - не ми е много ясно какво точно питаш. как да провериш радиобутоните? как да пазиш данните? ако е първото - аз радиобутони не ползвам (заемат много място и трудно се правят), но ако държиш да е с радиобутони мисля че проверката за чек е същата като на обикновения чекбокс, примерно ((CButton*)GetDlgItem(IDC_OPTION1))->GetCheck(). ако не държиш да е с радиобутони, ползвай комбо бокс, има много предимства: по-лесно се прави, не заема място, можеш да добавяш опции рънтайм без да се налага да преоразмеряваш диалога, имаш прост инт (селектираната опция) който може да сложиш в switch а не да проверяваш за чекване.
за данните - просто Boss,HR,Employee трябва да наследяват Person, което става просто като след името се добави : public Person , това е. вместо new Person трябва да имаше според избраната опция new Boss или new HR или квото там. зубърите ще ти кажат че трябва конструктора на Person да се направи прайват, за да не можеш изобщо да викаш new Person, но това са зубрашки педерастии, добре е да ги знаеш за да се преструващ пред даскали и изпитващи на добро дете, но реално само пречат

Благодаря за отговорите. Ами чудя се как да го направя ,така че да записва в линкед листа главната структура + някоя от воторостепенните .т.е ,ще трябва да записва само Името ,Егн-то и възрастта + някоя от трите второстепенни структури при избора на един от трите радио бутона т.е
или Boss или HR или Employee.И след това ,когато искам да покажа дадения запис той да изглежда нещо такова : Име , Егн , Години , HR , Отдел , Стаж ,и така да се съхранява в файла.
Тоест при въвеждане на Име , Егн и Години и натискане на един от трите радио бутона се появява нова диалогова кутия в която се въвеждат данните за Boss или HR или Employee.
Мислех си дали няма да стане да направя три линкед листа и след това по някакъв начин да ги обвържа ,но не съм го правил до сега и нещо не успявам да открия информация по този въпрос.
За комбо бокса с него не съм работил много и незнам дали ,ще се оправя ,но ще пробвам ,ако не успея. Сега ще тествам с : public Person да ги обвържа пък да видим до къде ще избутам..Мерси отново.

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

CODE

struct Boss
{      
     int nDegreeType;
     CString strSpecialty;      
};
struct HR
{                  
     CString strDepartment;
     int nService;      
};
struct Employee
{    
     int nEducation;
     CString strPosition;
     int nSelary;      
};
truct Person // главна структура
{
     CString strName;
     CString strEgn;
     int nAge;
     int nPersonType;
     Boss *pBoss;
     HR *pHr;
     Employee *pEmp;
     Person *pNext; // указател за линкед листа
};
struct Boss
{    
     int nDegreeType;
     CString strSpecialty;      
};
struct HR
{                  
     CString strDepartment;
     int nService;    
};
struct Employee
{    
     int nEducation;
     CString strPosition;
     int nSelary;
};
// Това съм направил за добавянето
void CPersonDoc::Add(CString strEgn, CString strName, int nAge, int nPersonType, int nDegreeType, CString strSpecialty, CString strDepartment, int nService, int nEducation, CString strPosition, int nSelary)
{
     // TODO: Add your implementation code here.
     Person *p = new Person;
     p->strEgn = strEgn;
     p->strName = strName;
     p->nAge = nAge;
     p->nPersonType = nPersonType;
     // Не съм сигурен ,как да достигна останалите член данни, така че да се запишат в листа


Публикувано от: Дон Реба 25-06-2018, 14:45
аха,значи второто което предположих, значи това което казах като второ предположение

Публикувано от: makka89 25-06-2018, 14:54
QUOTE (Дон Реба @ 25-06-2018, 14:45)
аха,значи второто което предположих, значи това което казах като второ предположение

Тествах го , но нещо не се получава не съм сигурен синтактично/семантично дали пиша правилно командата за да достигна останалите данни от второстепенните структури в функцията Add..

Публикувано от: bvbfan 26-06-2018, 10:26
CODE
p->pBoss = new Boss();
p->pBoss->nDegreeType = nDegreeType;

Да се занимаваш с Mfc е много голяма грешка, за нищо не става, още от създаването, а вече и deprecated. Ако искаш да се занимаваш със С++ далеч от М$ неща - много са зле. Виж Qt, Boost, Poco.

Публикувано от: makka89 26-06-2018, 10:52
QUOTE (bvbfan @ 26-06-2018, 10:26)
CODE
p->pBoss = new Boss();
p->pBoss->nDegreeType = nDegreeType;

Да се занимаваш с Mfc е много голяма грешка, за нищо не става, още от създаването, а вече и deprecated. Ако искаш да се занимаваш със С++ далеч от М$ неща - много са зле. Виж Qt, Boost, Poco.


Блгадаря! Мъчих го два дни , мисля че по този начин би трябвало да стане...А иначе и аз незнам ,защо се занимавам с MFC.Може би защото не знам , какво се ползва по фирмите като цяло.Ще погледна предложенията мерси.

А иначе ей така се получи

CODE

p->pBoss = new Boss;
p->pBoss->nDegreeType = nDegreeType;



Публикувано от: Дон Реба 26-06-2018, 11:11
остави го пингвина, той е от ония идеалистите, дето правят света по-добър и от много подобрения накрая на четвъртития.
нищо му няма на мфц, но като всичко родено в калифорния (столицата на софтуерната индустрия) модата му минава бързо. в калифорния всички са педали, а педалите не носят два поредни дена една и съща дреха, вчера е кууул, днеска е селско и остаряло.

Публикувано от: 40oz 26-06-2018, 11:18
Въобще за какво се мъчиш със С++? Това е умряла работа като линукса. Аз нов проект да се пише на C++ не съм чувал от години. По фирмите със С++ или ще съпортваш някой старт проект или ще се бориш да нагаждаш някакви наследствени библиотеки/енджини за уж нов проект. Качвай се на бързия влак (java, c#) докато учиш не ги гледай тея по конете и с перата на главата.

Публикувано от: bvbfan 26-06-2018, 13:02
Започни да чуваш, почти всички децентрализирани приложния се пишат на него. А колко е умрял Линукс-а, всички cloud неща са базирани на него - явно си много "печен". Единственото умряло е Лайняндос-а и по-мъртъв не може да бъде - не се ползва за нищо, освен да си го преинсталирате на лайняните щайги. Толкова много неразбиращи "програмисти" не съм виждал на едно място.

Публикувано от: Golden Gega 26-06-2018, 13:21
QUOTE (Дон Реба @ 26-06-2018, 11:11)
остави го пингвина, той е от ония идеалистите, дето правят света по-добър и от много подобрения накрая на четвъртития.
нищо му няма на мфц, но като всичко родено в калифорния (столицата на софтуерната индустрия) модата му минава бързо. в калифорния всички са педали, а педалите не носят два поредни дена една и съща дреха, вчера е кууул, днеска е селско и остаряло.

Пингвинчето е на хранилка на M$, всеки като види какви ги плещи и почва да си мисли че линуксджиите са рядка смес от идиоти и некадърници. Има и специални термини за неговото поведение в рекламния бизнес, мързи ме да ги търся...

Публикувано от: bvbfan 26-06-2018, 13:30
То се вижда, кои са идиоти и некадърници, ти си начело.

Публикувано от: 40oz 26-06-2018, 13:39
QUOTE (bvbfan @ 26-06-2018, 13:02)
Започни да чуваш, почти всички децентрализирани приложния се пишат на него. А колко е умрял Линукс-а, всички cloud неща са базирани на него - явно си много "печен". Единственото умряло е Лайняндос-а и по-мъртъв не може да бъде - не се ползва за нищо, освен да си го преинсталирате на лайняните щайги. Толкова много неразбиращи "програмисти" не съм виждал на едно място.

Е сега разговара беше за технологии и езици ти го прие лично и почна кой бил печен и неразбиращ...А пък 'лайняндос' не съм преинсталирал, само някой друг куц драйвер icon_smile.gif

Публикувано от: makka89 26-06-2018, 13:40
И аз не знам с какво да се захвана вече. Новите препоръки на господин Наков ли да следвам и да кача няколко проекта в github или пък по старите му ,че компаниите питат какво си правил тези години и нямаш стаж по специалността ,докато си учил.Последния ми опит имаше 800 кандидата за 10 места за стаж.Има много желаещи а фирмите търсят само най-големите "таланти" разбиращи от алгоритми , структури , мрежи , архитектури и т.н. и това е нормално. А за това че линукс е по-сигурната ОС на теоритя е така , но на практика ,ако някой е решил да злорадства няма оправия.Те Soni и yahoo и кой ли още не през година излиза ,че са ги хакнали пък камоли някой без такъв бюджет.

Публикувано от: SuN 27-06-2018, 11:49
Офтопика е отделен в https://forums.bgdev.org/index.php?showtopic=50492&st=10&#entry441678

Публикувано от: Дон Реба 27-06-2018, 13:03
QUOTE (makka89 @ 26-06-2018, 13:40)
И аз не знам с какво да се захвана вече. Новите препоръки на господин Наков ли да следвам и да кача няколко проекта в github или пък по старите му ,че компаниите питат какво си правил тези години и нямаш стаж по специалността ,докато си учил.Последния ми опит имаше 800 кандидата за 10 места за стаж.Има много желаещи а фирмите търсят само най-големите "таланти" разбиращи от алгоритми , структури , мрежи , архитектури и т.н. и това е нормално. А за това че линукс е по-сигурната ОС на теоритя е така , но на практика ,ако някой е решил да злорадства няма оправия.Те Soni и yahoo и кой ли още не през година излиза ,че са ги хакнали пък камоли някой без такъв бюджет.

малко са те понаплашили повече отколкото трябва.
> .Последния ми опит имаше 800 кандидата за 10 места за стаж
като цяло мисля че фирмите дето предлагат стаж са малко, затова е така. повечето тук сме почнали без стаж, директно в дълбоките води.

> Има много желаещи а фирмите търсят само най-големите "таланти" разбиращи от алгоритми , структури , мрежи , архитектури и т.н. и това е нормално.
не ги гледай какво пишат по обявите, те и женските търсят някой мил, галантен, 2 метра висок, хем с мускули като на шварценегер хем поетична душа като на педал, и да има пари и да не ебе чуждо, но накрая вземат квото има - космат, нисък и с шкембе, стига да не пие и да не бие, а след 30 се отказват и от второто изискване. и с работата е абсолютно същото.

моята препоръка - поцъкай самостоятелно 1-2 години, каквото и да е. после почни в гаражна фирмичка за скромна заплата (което не значи все пак чак като на банаджия скромна) , после им набий шута и отиди в сериозна фирма.

Публикувано от: bvbfan 27-06-2018, 13:08
QUOTE (makka89 @ 26-06-2018, 14:40)
И аз не знам с какво да се захвана вече. Новите препоръки на господин Наков ли да следвам и да кача няколко проекта в github или пък по старите му ,че компаниите питат какво си правил тези години и нямаш стаж по специалността ,докато си учил.Последния ми опит имаше 800 кандидата за 10 места за стаж.Има много желаещи а фирмите търсят само най-големите "таланти" разбиращи от алгоритми , структури , мрежи , архитектури и т.н. и това е нормално. А за това че линукс е по-сигурната ОС на теоритя е така , но на практика ,ако някой е решил да злорадства няма оправия.Те Soni и yahoo и кой ли още не през година излиза ,че са ги хакнали пък камоли някой без такъв бюджет.

Спести си глупостите, за Линукс много повече пари отколкото за коя да е лайняна конзола - вземи си отвори очите.

Публикувано от: makka89 27-06-2018, 13:40
Хора пак го закъсах... Във фънкцията Адд уж всичко е наред , но след това когато я викам в PersonView ,където трябва да запише нещата който ще се покажат на екрана нещо не се полъчава... Уж в Lenghta ми дава ,че е грешката , но малко ме съмнява и незнам какво да правя.

Ето така направих Add
CODE

void CPersonDoc::Add(CString strEgn, CString strName, int nAge, int nPersonType, int nDegreeType, CString strSpecialty, CString strDepartment, int nService, int nEducation, CString strPosition, int nSelary)
{
      // TODO: Add your implementation code here.
      Person *p = new Person;
      p->strEgn = strEgn;
      p->strName = strName;
      p->nAge = nAge;
      p->nPersonType = nPersonType;
      p->pBoss = new Boss;
      p->pBoss->nDegreeType = nDegreeType;
      p->pBoss->strSpecialty = strSpecialty;
      p->pHR = new HR;      
      p->pHR->strDepartment = strDepartment;
      p->pHR->nService = nService;
      p->pEmp = new Employee;
      p->pEmp->nEducation = nEducation;
      p->pEmp->strPosition = strPosition;
      p->pEmp->nSelary = nSelary;
      pHead = p;
}      


А това съм направил за Add на Person във View какво да запише и изкара на екрана.Тествах го само с по една член данна да видя дали ще работи , но ме съмняваше по този начин да стане.Когато добавям в OnPersonAdd винаги ми иска всичките променливи, но там където съм сложил 0 ми казва ,че не са от тази структура, което е така и незнам как да го накарам да не ги иска...
CODE

void CPersonView::OnPersonAdd()
{
      // TODO: Add your command handler code here
      CPersonDialog dlg;
      CPersonDoc *pDoc = GetDocument();
      dlg.m_nPersonType = 0;
            if (dlg.DoModal() == IDOK)
      {
            pDoc->Add(dlg.m_strEgn, dlg.m_strName,dlg.m_nAge,dlg.m_nPersonType,0,0,0,0,0,0,0);
            m_strEgn = dlg.m_strEgn;
            if (dlg.m_nPersonType == 0)
            {
                  CBossDialog dlg1;
                  if (dlg1.DoModal() == IDOK)
                  {
                        pDoc->Add(0, 0, 0,  dlg1.m_nDegreeType, 0, 0, 0, 0, 0, 0, 0);
                  }

            }
            else if (dlg.m_nPersonType == 1)
                  {
                        CHRDialog dlg1;
                        if (dlg1.DoModal() == IDOK)
                        {
                              pDoc->Add(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, dlg1.m_nSelary);
                        }
                  }


      }
            m_nMenu = 1;
            RedrawWindow();
}


А иначе ми дава грешка в деббъгера в проверката на дължината на списъка
CODE

int CPersonDoc::Lenght()
{
      // TODO: Add your implementation code here.
      int n = 0;
      Person *p = pHead;
      while (p != 0)
      {
            n++;
            p = p->pNext;  // Тук дава че има грешка " Exception thrown: read access violation.
p was 0xCDCDCDCD." която не съм сигурен какво значи

            
      }
      return n;
      
}


Незнам какво да го правя , ако някой има идея или от къде мога да прочета как се получават нещата с пойнтерите при подобни случай ,ще съм много благодарен!

Публикувано от: Дон Реба 27-06-2018, 13:52
за да улесни дебъгването средата слага едни стойности за неинициализирани променливи, в случая обърни внимание на съобщението че р е 0xCDCDCDCD
товазначи че просто не си занулил края на списъка.
всъщност, гледайки кода ти , ти изобщо не създаваш вярно списъка, защото насочваш pHead към новия елемент, но не нясочваш next поинтера на новия елемент към досегашния pHead. от там идва проблема

Публикувано от: Дон Реба 27-06-2018, 13:54
впрочем поздравления, ти си ПЪРВИЯ който търси помощ и се е сетил да ползва дебъгер icon_smile.gif

Публикувано от: makka89 27-06-2018, 14:25
QUOTE (Дон Реба @ 27-06-2018, 13:52)
за да улесни дебъгването средата слага едни стойности за неинициализирани променливи, в случая обърни внимание на съобщението че р е 0xCDCDCDCD
товазначи че просто не си занулил края на списъка.
всъщност, гледайки кода ти , ти изобщо не създаваш вярно списъка, защото насочваш pHead към новия елемент, но не нясочваш next поинтера на новия елемент към досегашния pHead. от там идва проблема

Благодаря мисля ,че това в конструктура го занулява хах..
CODE

CPersonDoc::CPersonDoc()
{
      // TODO: add one-time construction code here
      pHead = 0;
      
}


QUOTE
впрочем поздравления, ти си ПЪРВИЯ който търси помощ и се е сетил да ползва дебъгер


Не е добре положението значи щом съм първия icon_lol.gif
Но започвам да се притеснявам ,че или съм много зле или не знам от къде да търся материал..

Публикувано от: Дон Реба 27-06-2018, 15:40
QUOTE (makka89 @ 27-06-2018, 14:25)

Благодаря мисля ,че това в конструктура го занулява хах..

това занулява празния списък, но както казах при адд не запомняш в некст поинтера началото на спосъка, а само слагаш текущо създадения начело. виж си кода дето има
pHead = p;
преди тоя ред трябва да има p->pNext=pHead;
в момента pNext е празно, и всички елементи които си добавил не са закачени в списък а са отишли в нищото

Публикувано от: makka89 27-06-2018, 15:55
QUOTE (Дон Реба @ 27-06-2018, 15:40)
QUOTE (makka89 @ 27-06-2018, 14:25)

Благодаря мисля ,че това в конструктура го занулява хах..

това занулява празния списък, но както казах при адд не запомняш в некст поинтера началото на спосъка, а само слагаш текущо създадения начело. виж си кода дето има
pHead = p;
преди тоя ред трябва да има p->pNext=pHead;
в момента pNext е празно, и всички елементи които си добавил не са закачени в списък а са отишли в нищото

Ох да вярно зле съм ,въобще не съм го съобразил...Благодаря ти , така наистина стана.

Публикувано от: makka89 27-06-2018, 16:51
Дон Реба , има ли някъкво четиво ,което може да препоръчаш.Искам да подобря разбирането си за пойнетрите , последователността ,обвързването и т.н. За да мога да достигна поне на ниво не платен стаж. :Д

Публикувано от: Gamma Goblin 27-06-2018, 17:13
защо и ти пишеш с тая грешна конвенция ? кой дявол я проповядва ?

Отаврящите скоби се слагат на същия ред, и методите започват с малка буква. Също не се слагат разни лайняни префикси като m,n,p,k,u,r Не сме 13и век

Публикувано от: makka89 27-06-2018, 17:39
QUOTE (Gamma Goblin @ 27-06-2018, 17:13)
защо и ти пишеш с тая грешна конвенция ? кой дявол я проповядва ?

Отаврящите скоби се слагат на същия ред, и методите започват с малка буква. Също не се слагат разни лайняни префикси като m,n,p,k,u,r Не сме 13и век

Така казват в https://bg.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5) :Д , незнам дали е правилно ,но така свикнах и сега ,ако слагам скоби на горния ред и почвам да се бъркам....

Публикувано от: Gamma Goblin 27-06-2018, 17:43
анатема, ако немързеше щях да го оправя това уики

Публикувано от: makka89 27-06-2018, 17:47
QUOTE (Gamma Goblin @ 27-06-2018, 17:43)
анатема, ако немързеше щях да го оправя това уики

Но иначе сега ,като се загледам мисля ,че си прав за методите дори int main() е с малко буква по подразбиране..а за " m,n,p,k,u,r " мислех ,че примерно , когато е за "n" "str" "b" примерно е съкращение ,че променливата е int,string,bool..

Публикувано от: Дон Реба 27-06-2018, 17:48
QUOTE (makka89 @ 27-06-2018, 17:39)
QUOTE (Gamma Goblin @ 27-06-2018, 17:13)
защо и ти пишеш с тая грешна конвенция ? кой дявол я проповядва ?

Отаврящите скоби се слагат на същия ред, и методите започват с малка буква. Също не се слагат разни лайняни префикси като m,n,p,k,u,r Не сме 13и век

Така казват в https://bg.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5) :Д , незнам дали е правилно ,но така свикнах и сега ,ако слагам скоби на горния ред и почвам да се бъркам....

научи се да ползваш верните думи, не "правилно" а "модно" е точната дума
да, понеже си новобранец, ще трябва да внимаваш кое е модата в момента и като ходиш по интервюта да се преструваш че си заклет фен и да загатваш леко съжаление че вече горенето на клада не се практикува за да може тези които не я споделят да си получат заслуженото.
извън това, добре е да си наясно че това са глупости живеят по-малко от куче.
книги не мога да ти препоръчам, аз лично нищо не съм чел за програмиране никога, учиш се с писане на код, четене на документацията, и разговори с други програмисти.


Публикувано от: makka89 27-06-2018, 18:01
QUOTE (Дон Реба @ 27-06-2018, 17:48)
QUOTE (makka89 @ 27-06-2018, 17:39)
QUOTE (Gamma Goblin @ 27-06-2018, 17:13)
защо и ти пишеш с тая грешна конвенция ? кой дявол я проповядва ?

Отаврящите скоби се слагат на същия ред, и методите започват с малка буква. Също не се слагат разни лайняни префикси като m,n,p,k,u,r Не сме 13и век

Така казват в https://bg.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5) :Д , незнам дали е правилно ,но така свикнах и сега ,ако слагам скоби на горния ред и почвам да се бъркам....

научи се да ползваш верните думи, не "правилно" а "модно" е точната дума
да, понеже си новобранец, ще трябва да внимаваш кое е модата в момента и като ходиш по интервюта да се преструваш че си заклет фен и да загатваш леко съжаление че вече горенето на клада не се практикува за да може тези които не я споделят да си получат заслуженото.
извън това, добре е да си наясно че това са глупости живеят по-малко от куче.
книги не мога да ти препоръчам, аз лично нищо не съм чел за програмиране никога, учиш се с писане на код, четене на документацията, и разговори с други програмисти.

Thanks. Значи няма да пожъне успех моето участие в тази сфера не съм от модерните хора , ще трябва да лъжа по интервютата за съжаление.
Значи така ,ще процедирам писането на код и четенето на документация по- лесно осъществимо, но вече разговори с други програмисти които разбират по-трудната част..

Публикувано от: Gamma Goblin 27-06-2018, 18:17
може да правиш и така - като някой то говори нещо модерно трябва да почнеш да му обясняваш колко е тъп и колко смотано и обречено на провал е модерното нещо


Публикувано от: dvader 27-06-2018, 18:58
QUOTE (makka89 @ 27-06-2018, 17:47)
си прав за методите дори int main() е с малко буква по подразбиране..

Първо, какво значи "по подразбиране"? Да не би да има начин да не е с малка буква? icon_smile.gif
А второ, то в стандартната С библиотека няма функция по-дълга от 8 знака - значи ли това, че трябва да си кръщаваме методите само с осем букви?

Публикувано от: makka89 27-06-2018, 19:37
QUOTE (dvader @ 27-06-2018, 18:58)
QUOTE (makka89 @ 27-06-2018, 17:47)
си прав за методите  дори int main() е с малко буква по подразбиране..

Първо, какво значи "по подразбиране"? Да не би да има начин да не е с малка буква? icon_smile.gif
А второ, то в стандартната С библиотека няма функция по-дълга от 8 знака - значи ли това, че трябва да си кръщаваме методите само с осем букви?

Според wiki " static void Main() " е с главна ,но това е за C# мисля ,а там не съм сигурен как е . А за функциите също не знам , ако имах отговорн на тези въпроси надали щях да питам защо пойнтерите не ми се получават хах.

Публикувано от: Gamma Goblin 27-06-2018, 19:49
-- грешната тема ---

Публикувано от: Дон Реба 27-06-2018, 19:49
QUOTE (makka89 @ 27-06-2018, 18:01)

Thanks. Значи няма да пожъне успех моето участие в тази сфера не съм от модерните хора , ще трябва да лъжа по интервютата за съжаление.
Значи така ,ще процедирам писането на код и четенето на документация по- лесно осъществимо, но вече разговори с други програмисти които разбират по-трудната част..

хехе, не бързай да се отказваш, аз да не си мислиш че съм от модерните, телефона ми е нокия 1100, личните ми компютри са на ХР и така смятам да си останат. по-новия, го ползвам само да чета книги на него, другия е за работа, дурон на 700 мегахерца, не го паля всеки ден, но пусна ли го нормата е един и половина - два бона до ракиено време. модата си е мода, но скиловете са си башка.

Публикувано от: Gamma Goblin 27-06-2018, 20:01
QUOTE
но пусна ли го нормата е един и половина - два бона до ракиено време.
часпром ?

Публикувано от: makka89 27-06-2018, 20:08
QUOTE (Дон Реба @ 27-06-2018, 19:49)
QUOTE (makka89 @ 27-06-2018, 18:01)

Thanks. Значи няма да пожъне успех моето участие в тази сфера не съм от модерните хора , ще трябва да лъжа по интервютата за съжаление.
Значи така ,ще процедирам писането на код и четенето на документация по- лесно осъществимо, но вече разговори с други програмисти които разбират по-трудната част..

хехе, не бързай да се отказваш, аз да не си мислиш че съм от модерните, телефона ми е нокия 1100, личните ми компютри са на ХР и така смятам да си останат. по-новия, го ползвам само да чета книги на него, другия е за работа, дурон на 700 мегахерца, не го паля всеки ден, но пусна ли го нормата е един и половина - два бона до ракиено време. модата си е мода, но скиловете са си башка.

icon_lol.gif моята до скоро беше 2600 classic плувал съм няколко пъти с нея докато бях спасител в америката , но от нуждата на интернет я смених ,а до скоро бях с първите duo core и видео от 2007...Добра норма ще да е това. Само скил трябва да набавя лол.

Публикувано от: Дон Реба 27-06-2018, 20:17
QUOTE (Gamma Goblin @ 27-06-2018, 20:01)
QUOTE
но пусна ли го нормата е един и половина - два бона до ракиено време.
часпром ?

е, тука още ли не си знаем кътните зъби? часпром да, от време на време. мисля че сме го говорили поне в 3-4 теми различни.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)