Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Передать двумерный массив указателей в функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как объявить, что размер вектора равен нулю? http://www.cyberforum.ru/cpp-beginners/thread1092117.html
как объявить что размер вектора равен нулю? Компилятор говорит, что минимум 1 элемент должен быть, но в задании написано обязательно это включить в код. Спасибо за ответы
C++ Как реализовать генерацию псевдослучайных чисел по равномерному и гауссовому распределениям? Собственно, вопрос в названии. Как реализовать генерацию псевдослучайных чисел по равномерному и гауссовому распределениям? (Диапазон чисел, получающихся при генерации, должен быть задаваем) http://www.cyberforum.ru/cpp-beginners/thread1092106.html
C++ Разница между статическим и динамическим полиморфизмом
Добрый день Подскажите пожалуйста какая разница между статическим и динамическим полиморфизмом и пожалуйста на примере и virtual функции к какому полиморфизму относятся? большое спасибо.
C++ Мне нужно ввести в программу данные с помощью ifstream и добавить их всех в вектор чтобы был список.
Доброго времени суток. У меня есть класс Студенты. Мне нужно ввести в программу данные о них(ID, имя, фамилия, возраст) с помощью ifstream и добавить их всех в вектор чтобы был список.
C++ Работа с деревом каталогов диска. Вывод статистики http://www.cyberforum.ru/cpp-beginners/thread1092096.html
нужно реализовать программу со статистикой: - поиск макс вложенности (путь к папке) - 5 наиболее часто встречающихся символов в названии - дублирующиеся имена папок (находящихся в разных папках)....
C++ Найти сумму элементов квадратной матрицы X(n,n) Найти сумму элементов квадратной матрицы X(n,n), находящихся по периметру этой матрицы и сумму элементов на ее диагоналях. Если суммы равны, то каждый отрицательный элемент заменить модулем этого... подробнее

Показать сообщение отдельно
zss
Модератор
Эксперт С++
6474 / 6037 / 1980
Регистрация: 18.12.2011
Сообщений: 15,621
Завершенные тесты: 1
08.02.2014, 19:09
Как-то фривольно Вы обращаетесь с переменными в конструкторах.
Если возникает неоднозначность в именах, то к члену класса
надо обращаться через указатель this:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Tile
{
private:
  std::string name;
public:
  Tile(std::string name)
  {
     this->name = name;
  }
};
 
struct Room
{
  std::string name;
  Tile* tiles[8][8];
  Room(std::string name, Tile* tiles[8][8])
  {
     this->name = name;
     this->tiles = tiles; // имейте ввиду, что здесь копируется только указатель, а не сам массив
  }
};
Добавлено через 17 минут
Правильно будет передавать указатель на динамически выделенную память:
C++
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
#include <string>
class Tile
{
private:
  std::string name;
public:
  Tile()
  {
        name="a";
  }
  Tile(std::string name)
  {
     this->name = name;
  }
};
 
struct Room
{
  std::string name;
  Tile tiles[8][8];
  Room(std::string name, Tile** tiles)
  {
     this->name = name;
     for(int i=0;i<8;i++)
         for(int j=0;j<8;j++)
             this->tiles[i][j]=tiles[i][j];
  }
};
int main()
{
    Tile** tt;
    tt=new Tile*[8];
    for(int i=0;i<8;i++)
    {
        tt[i]=new Tile[8];
    }
    Room R1("first",tt);
    for(int i=0;i<8;i++)
        delete[] tt[i];
    delete[] tt;
 
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru