JonnySilver

Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Полностью согласен со Swappp. По сути, задачу в том виде как она была поставлена, мы решили давно. Цитата: /В главном .cpp - файле: //объявление массива: int mas[8][4]; //......инициализация...... //Передача в файл реализации методов: Essence[i].Rat(mas); //Прототип в заголовочном файле: void Rat(int mas[][4]); //Реализация в файле реализации методов класса: void CEssence::Rat(int mas[][4]) { //Вывод массива... В файл, но это не принципиально... Считаем, просто вывод... ofstream outfile("file.txt",ios::out); for(int i=0;i<8;i++) { for(int j=0;j<4;j++) { outfile<<mas[i][j]<<" "; } outfile<<endl; } } И, еще раз повторюсь... главное - что, если вывод сделать в функции, принадлежащей главному файлу - все зашибись! | Я тоже не понимаю, что у тебя может не работать? Цитата: Придется пользоваться плохим стилем и объявлять массив как extern... | Плохим стилем это трудно назвать. Мало ли, какие переменные тебе приспичило сделать глобальными... Долго думал... минут 5 ..... Вроде я тебя понял. Вот так что ли?: Если бы твой класс содержал переменную - динамический массив, например, то можно было бы написать конструктор или функцию класса, отвечающую за его инициализацию . А затем мучить массив - член класса. Тогда extern не нужен! реализация: //--------------------------------------------------------------------------- // main.cpp //--------------------------------------------------------------------------- #include <stdio.h> #include "cessence.h" int Mas[4][8] = {{1,1,1,1,1,1,1,1},{2,2,2,2,2,2,2,2},{3,3,3,3,3,3,3,3},{4,4,4,4,4,4,4,4}}; int main(int argc, char* argv[]) { // кол-во строк, колонок, сам массив CEssence Essence(4,8, (int**)Mas); Essence.Rat(); return 0; } //--------------------------------------------------------------------------- // cessence.cpp //--------------------------------------------------------------------------- #include "cessence.h" CEssence::CEssence(int i, int j, int **m) { Row = i; Col = j; massiv = new int*[Row]; for (int r=0;r<Row;r++) { massiv[r] = new int[Col]; for (int c=0;c<Col;c++) massiv[r][c] = (int)*m++; // во-о-о как! } }; CEssence::~CEssence() { for (int i=0;i<Row;i++) delete [] massiv[i]; delete [] massiv; }; void CEssence::Rat() { for (int i=0;i<Row;i++) { for (int j=0;j<Col;j++) printf("%d", massiv[i][j]); } }; //--------------------------------------------------------------------------- // cessence.h //--------------------------------------------------------------------------- class CEssence { private: int** massiv; // копия для работы int Row,Col; // придется столько удалять public: CEssence(int i, int j, int **m); // конструктор CEssence::~CEssence(); // деструктор void Rat(); }; |