Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как передать структуру в функцию / 4 сообщений из 4, страница 1 из 1
23.11.2014, 09:21
    #38814294
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать структуру в функцию
Имеется следующий класс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
class Myobj{
      public:
			int num;
            Mypoints v;
            Mypoints vn;
            Mypoints vt; 
            Myforma f;
            int loadfromfile(string filename,Mypoint xyz,Mypoint scale);
            int loadfromstr(string str);
            int mydel();
            int show();
            int in_obj(Mypoint mp,int xpp);
            int in_obj_cyl(Myplayer mp);
	int in_obj_cube(Mycube* mp);
      };



и функция
Код: plaintext
1.
void creategamemap(Myobj* mb);


когда передаю таким образом
Код: plaintext
1.
2.
3.
Myobj obj;
...
mygamemap.creategamemap(&obj);


передается пустая структура
...
Рейтинг: 0 / 0
23.11.2014, 09:43
    #38814300
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать структуру в функцию
Картежник,

передашь ты структуру правильно, ты ее неправильно инициализируешь, а точнее, никак не инициализируешь, поэтому она и "пустая", а точнее, она инициирована случайными данными.
...
Рейтинг: 0 / 0
23.11.2014, 09:51
    #38814301
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать структуру в функцию
MasterZiv,

нет я ее инициализирую просто тут не показано. многоточие стоит. дело в том что внутренние свойства тоже структуры.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
class Mypoint{
      public:
      float x;
      float y;
      float z;      
      int loadfromstr(string s);
      int show();
      };
class Mypoints{
      public:
      int count;
      Mypoint *p;
      int mydel();
      int show();
      };
class Mysquare{
      public:
      int count;
      vector <int> fff;
      vector <int> fn;
      vector <int> ft;
      int mydel();
      int loadfromstr(string s);
      int show();
      };
class Myforma{
      public:
      int count;
      Mysquare *ff;
      int mydel();
      int show();
      };

class Myobj{
      public:
			int num;
            Mypoints v;
            Mypoints vn;
            Mypoints vt; 
            Myforma f;
            int loadfromfile(string filename,Mypoint xyz,Mypoint scale);
            int loadfromstr(string str);
            int mydel();
            int show();
            int in_obj(Mypoint mp,int xpp);
            int in_obj_cyl(Myplayer mp);
			int in_obj_cube(Mycube* mp);
      };


инициализация
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
myobjs.objs[myobjs.objcount].loadfromstr(s);
		myobjs.objs[myobjs.objcount].show();
		myobjs.objs[myobjs.objcount].num=myobjs.objcount;
		vertcount=vertcount+myobjs.objs[myobjs.objcount].v.count;
		myobjs.objcount++;
		cout<<"objcount="<<myobjs.objcount<<" vertcount="<<vertcount<<"\n";
		
		mygamemap.creategamemap(&objs[objcount]);


надо же нашел глупую ошибку))))))) myobjs.objcount++; стоит раньше
...
Рейтинг: 0 / 0
23.11.2014, 14:01
    #38814377
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать структуру в функцию
Картежник,

как минимум этот член класса не инициализируется никак:
Код: plaintext
1.
2.
3.
4.
class Myobj{
      public:
			int num;
};
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как передать структуру в функцию / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]