Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глобальная переменная в Form.h, становится мусором и при измен. в функ. 
:(
    Опции темы
maxi91m
Дата 13.5.2010, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 14.1.2007
Где: Нижний Новгород

Репутация: нет
Всего: нет



Пишу программу которая демонстрирует иерархический список на примере примитивного(псевдо) редактора.
Имеются таки классы
TTextLink -  звено списка
TText - класс текст(храним указатель на pFirst и pCurrent)
TTextM :pablic TText - насденик класса текста где перегружны пару функции
TTextMem - класс который отвечает за распределение памяти.
и есть еще пару функции сторонних который отвечают за чтение, запись в файл и отображение на форму

В Form1.h  я пишу TTextM txt  слежу отладчиком и  после отработки TText() pFirst становится каким то мусором
Если я пшиу TTextM txt в какой либо функции класса Form1.h то все переменные нормальные, но мне нужна глобальность переменной что бы ее изпользовать для разных функций.

Код

#include <iostream>
#include <string.h>

using namespace std;

class TTextM;
class TTextLink;
class TTextMem 
{
public:
    TTextLink* pFirst, *pFree, *pLast;
    friend class TTextLink;
};
class TTextLink 
{
    static TTextMem Mem;
public:
    int tab_s;
    TTextLink* pNext;
    TTextLink* pDown;
    string str;
    TTextLink(){pNext=pDown = NULL; tab_s = 0;}
    void* operator new(size_t size);
    void operator delete(void* p);
    static void InitMem(int size = 100);
    static void CleanerMem(TTextM &txt);
    bool IsAtom();
    friend class TText;

};


Код

#include "TTextLink.h"
#include <stack>
#include <string.h>

using namespace System;
using namespace std;
   
class TText;                                                 

class TText
{
public:
    TTextLink* pFirst;
    TTextLink* pCurrent;
    stack<TTextLink*> _stack,_stackI;  
    TText( ){pFirst = NULL; pCurrent = NULL;}
    void GoNextLine( );
    void GoNextSect( );
    void GoPrevLine( );
    void GoPrevSect( );
    void SetLine(string line){pCurrent->str = line;}
    string GetLine(){return string(pCurrent->str);}
    void Reset ( );
    int  IsEnd ( ){return !_stackI.empty();}
    void GoNext( );
    void InsNextLine( string line );
    void InsDownLine( string line );
    void InsNextSect( string line );
    void InsDownSect( string line );
    virtual void DelLine( );
    virtual void DelSect( );

};


Код

 #include "TText.h"

class TText;

class TTextM : public TText
{
public:
    virtual void DelLine();
    virtual void DelSect();
    TTextM():TText(){
        
    };
};





Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  TextR.rar 22,91 Kb
--------------------
PM MAIL ICQ   Вверх
maxi91m
Дата 14.5.2010, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 14.1.2007
Где: Нижний Новгород

Репутация: нет
Всего: нет



Может ктонибудь знает почему если я пишу  в Form1.h  в самом верху объявляю TTextM txt; 
везде она видится, но глобальная она не меняется
 smile 
 smile 
--------------------
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.