Страница 1 из 1

функция для размерности

Добавлено: 11 сен 2010, 18:37
Евгений Александрович
Проблема: после добавления функции size(), а она для ввода размерности матрицы, код "ложится". Что у меня не так??

Код: Выделить всё

class matrix
{ 
private:
        int n,m,i,j;
        int **matrica;
public: 
        matrix ();
        ~matrix(){}; 
        int get(int ,int);
        void print();
		int size(int ,int);
};
int matrix::size(int n,int m)
 {
        cout<<"input the n:";
        cin>>n;   
        cout<<"input the m:";
        cin>>m;
		return 0;
 }
matrix::matrix()
{      
        matrica=new int*[n];
        for ( i = 0; i < n; i++)
                matrica[i] = new int[m];
 
        for ( i = 0; i < n; i++)
               for ( j = 0; j < m; j++)
                        matrica[i][j] = rand() % 10;
 }
void matrix: :p rint()
{
     for( i = 0; i < n; i++)
     {
         for(j = 0; j < m; j++)
               cout<<matrica[i][j]<<' ';
         cout<<"\n";
     }

}
 
int matrix::get(int i,int j)
{
         if(i>=n||j>=m)
            return 0;
         cout<<matrica[i][j]<<'\n';
}
 
int main ()
{  
	int m,n;
        system("cls");
        matrix object;
		object.size(n,m);
        object.print();
        int i, j;
		cout<<" get (i.j):"<<endl;
        cout<<"Enter i: ";
        cin>>i;
        cout<<"Enter j: ";
        cin>>j;
        if(object.get(i,j)==0)
           cout<<"i or j more or equal than n or m!\n";
        system("PAUSE");

        return 0;
}

Re: функция для размерности

Добавлено: 11 сен 2010, 20:21
BulldozerBSG

Код: Выделить всё

int matrix::size(int n,int m)
 {
        cout<<"input the n:";
        cin>>n;  
        cout<<"input the m:";
        cin>>m;
        return 0;
 }
Да вы батенька зажигаете. Тут вопрос в следующем что вы хотели получить?
здесь переменные n и m локальные для метода и перекрывают переменные класса. И не понятно зачем они объявлены как параметры метода. все равно вводятся через cin.

Re: функция для размерности

Добавлено: 11 сен 2010, 22:26
Евгений Александрович
Обдумав, согласился с тем, что это - ерунда.
Но как же тогда можно создать метод для ввода размерности, ведь n и m должны быть private???

Re: функция для размерности

Добавлено: 12 сен 2010, 00:44
BulldozerBSG
А почему тогда не так

Код: Выделить всё

void matrix::setsize()
 {
        cout<<"input the n:";
        cin>>n;  
        cout<<"input the m:";
        cin>>m;
 }

Re: функция для размерности

Добавлено: 13 сен 2010, 09:48
BBB
BulldozerBSG писал(а):

Код: Выделить всё

int matrix::size(int n,int m)
 {
        cout<<"input the n:";
        cin>>n;  
        cout<<"input the m:";
        cin>>m;
        return 0;
 }
Да вы батенька зажигаете. Тут вопрос в следующем что вы хотели получить?
здесь переменные n и m локальные для метода и перекрывают переменные класса. И не понятно зачем они объявлены как параметры метода. все равно вводятся через cin.
Причем, сизифов труд. "Все, что нажито непосильным трудом..." n и m - даже НЕ VAR-параметры. Т.е. получали в них данные, получали... А как только ф-ия size заканчивает работу, все труды пропадают втуне.

What hosting to choose?

Добавлено: 15 окт 2015, 00:46
GeorgeSoca
Pa vart webbhotell kan ni kanna er trygg! Forutom att vi anvander oss av speglade harddiskar pa alla vara servrar sa tar vi aven backup tva ganger per dygn pa separata servrar. Vi anvander oss av ISPmanager som kontrollpanel. ISPmanager ar en kontrollpanel som gor det enkelt att administrera sin hemsida. Hos oss kan ni lagga hur manga hemsidor och domaner ni onskar under ett webbhotellskonto.
virtual hosting