Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2010, 13:00   #1
kir_rik
Пользователь
 
Аватар для kir_rik
 
Регистрация: 29.03.2010
Сообщений: 21
По умолчанию проблема с this-> или я неправильно пишу конструктор?

для элемента массива типа group вызывается подряд конструктор new_group и метод add_edge.
new_group корректно отображает g->vsize равное двум.
А вот add_edge на разных компьютерах ведет себя по разному: или вываливает программу с ошибкой отправить/не отправить отчет или выводит this->vsize равно какому-то монструозному числу порядков этак 7, или сколько там предусматривает %d
Код укоротил как мог, но все равно великоват, уж извините.

Подскажите, плз, что не так.

Код:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#define size 10
using namespace std;
//---------------------------------------
struct edge {
       int v1, v2, weight;
       edge* new_edge();
};

edge* edge::new_edge() {
      return NULL;
      }
      
struct group {
       int vsize; //numbers of vortexes in the group
       group* new_group(edge* e);
       int group::add_edge(edge* e);
       void* group::add_group(group* to_add);
};

group* group::new_group(edge* e){
       group* g = new group();
       g->vsize=2;
       printf("%d\n", g->vsize);
       system("pause");
       }
       
int group::add_edge(edge* e) {   //how add edge in the group
      printf("Shut down D:\n");
      printf("%d\n", this->vsize);
      system("pause");
      //code here
      return -1;
} 


int main(){
       edge *input[size];
       group *atwork[size];
       int n=0;
       input[n]=input[n]->new_edge();
       atwork[0]->new_group(input[n]);
       printf("new_group done\n");
       system("pause");
       atwork[0]->add_edge(input[n]);
       printf("add_edge done");
       system("pause");
       return 0;
}
kir_rik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишу компонент, проблема с Caption sadfeel Общие вопросы Delphi 5 14.11.2009 23:16
Пишу конструктор игр koljsch Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 14.04.2009 17:30
Проблема с руками или клавой? [Smarik] Свободное общение 3 30.01.2009 00:53
Пишу чат. Иесть проблема mar4elo Общие вопросы Delphi 2 25.11.2008 20:54
Делаю сайты, пишу маленькие/большие скрипты. Пишу веб-приложения и приложения под Windows. SkyM@n Фриланс 3 29.12.2007 16:21