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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мусор в поле класса, после создания 
:(
    Опции темы
maxi91m
Дата 16.5.2010, 19:07 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Не понимаю почему  smile 
Я создаю экземпляр класса TTextM txt; который унаследоват от TText(создаю все в хидере Form1.h в самом верху
После того как конструктор отработает в самом верхнем(даже если я добавляю еще одно поле) содержится не понятный мусор, который появляется когда отработает конструктор TText

TTextM выглядит так
Код

#ifndef TTEXTM_H_
#define TTEXTM_H_
#include "TText.h"
#include "UIFanction.h"
//class TText;

class TTextM : public TText
{
public:
    virtual void DelLine();
    virtual void DelSect();
    virtual void Del();
     TTextM();
    int SaveTextF( char* name_f);
    void ReadTextF( char *name_f);
    void PrintTextForm( System::Windows::Forms::ListBox^ listBox1);

};
#endif


Он унаследован от 
Код

#ifndef TTEXT_H_
#define TTEXT_H_
#include "TTextLink.h"
#include <stack>
#include <string.h>

using namespace System;
using namespace std;
   
class TTextLink;                                               

class TText
{
public:
    TTextLink* pFirst1;
    TTextLink* pFirst;
    TTextLink* pCurrent;
    stack<TTextLink*> _stack,_stackI;  
    TText(){
        pFirst = NULL; 
        pFirst1 = 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( );

};


#endif 

Данные переменные не хотят изменятся
TTextLink* pFirst1;
TTextLink* pFirst;
через методы класса TTextM(возможно я что то не понимаю с наследованием) 
Как я понимаю класс TTextM наследует все от TText и методы класса TTextM выполняются для полей TText(т.к переменная pCurrent  меняется как положенно)
Что за ошибки такие? 
Что не в порядке?

Так наверное не очень понятно, я прикрепил проект, так наверное будет понятнее.

и еще
если я пишу в Form.h
TTextM txt;
txt.pFirst1 = NULL; и переменная не меняется
а почему не пойму

Это сообщение отредактировал(а) maxi91m - 16.5.2010, 19:58

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


Бывалый
*


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

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



Ну может кто знает почему при создание экземпляра класса в поле записывается какое то значение хотя в конструкторе нету такого?
 smile 
--------------------
PM MAIL ICQ   Вверх
Exception
Дата 16.5.2010, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

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



maxi91m, при всём уважении, если тебе не отвечают, не надо поднимать тему — тем более, с подобной формулировкой второго сообщения.
Сегодня воскресенье, у людей выходные, а все специалисты по Managed C++ временно уехали на Гавайи.

Цитата(maxi91m @  16.5.2010,  20:07 Найти цитируемый пост)
После того как конструктор отработает в самом верхнем(даже если я добавляю еще одно поле) содержится не понятный мусор, который появляется когда отработает конструктор TText


Я понял твой вопрос только с седьмого прочтения. Названия в духе TText и TTextM не добавляют ясности касательно того, что именно ты хочешь сделать. А самое интересное — как мы можем понять, что делает конструктор, если ты привёл только заголовки (нет, я не скачиваю файлы проектов, да и MC++ у меня не установлен)?

Добавлено через 1 минуту и 57 секунд
Первая догадка: может быть, в C++ всегда в полях мусор, пока мы их чем-нибудь да не заполним?
PM   Вверх
maxi91m
Дата 16.5.2010, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Проблема в том что я и не могу заполнить, пишу явным образом
TTextM txt;
txt.pFirst1 = NULL; и переменная не меняется
а почему не пойму
--------------------
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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