Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка Е2061 для friend class, ошибка Е2061 для friend class 
:(
    Опции темы
Dimetra
Дата 19.3.2009, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Подскажите, почему выдается ошибка в выделенной строке

ошибка в выделенной строке E2061: Friends must be functions or classes

#ifndef __MATRIX_H__
#define __MATRIX_H__

#include <stdexcept>

template <class T>
class Matrix
{
    T*           data;
    unsigned int rows;
    unsigned int cols;

    T* new_copy(const T* src, unsigned int src_size, unsigned int dst_size)
    {
        T* dest = new T[dst_size];
            copy(src, src + src_size, dest);
        return dest;
    }

public:
    Matrix(unsigned int _rows, unsigned int _cols):
        rows(_rows),
        cols(_cols)
    { data = new T[rows * cols]; }

    ~Matrix()
    { delete[] data; }

    Matrix(const Matrix& m):
        data(new_copy(m.data,  *m.rows, *m.cols)),
        rows(m.rows), cols(m.cols){}

    Matrix& operator=(const Matrix& m)
    {
        if (this != &m)
        {
            T* temp = new_copy(m.data, *m.rows, *m.cols);
            delete[] data;
            data = temp;
            rows = m.rows;
            cols = m.cols;
        }
        return *this;
    }


    template<class U>
    class Helper
    {
        Matrix<U>&   matrix;
        unsigned int i;

        Helper(Matrix<U>& _mc, unsigned int _i): matrix(_mc), i(_i) {};
        Helper(const Matrix<U>& _mc, unsigned int _i): matrix(const_cast<Matrix&>(_mc)), i(_i) {};
        Helper(const Helper&);
        Helper& operator=(const Helper&);

        friend class Matrix<U>;

    public:

        U& operator[](unsigned int k)
        {
            return matrix.data[matrix.cols * i + k];
        }
    };

    Helper<T> operator[](unsigned int i)
    {
        return Helper<T>(*this, i);
    }

};

#endif //__MATRIX_H__




Заранее благодарна
PM MAIL   Вверх
azesmcar
Дата 19.3.2009, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



1. Используйте тег "КОД" чтобы код можно было прочесть
2. Не используйте подчеркивания перед именами переменных и не используйте двойных подчеркиваний вообще.
3. Должно нормально компилироватся (во всяком случае эту ошибку он не должен выдавать)
4. Вы уверены что Helper и Matrix нужны разные типы шаблона?

какой код вы компилируете и каким компилятором? покажите полный код с функцией main.

этот
Код

int main()
{
    Matrix<int> t(1, 2);
    return 0;
}

у меня скомпилировался без ошибок.

Это сообщение отредактировал(а) azesmcar - 19.3.2009, 08:06
PM   Вверх
Dimetra
Дата 19.3.2009, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Цитата(azesmcar @ 19.3.2009,  07:56)
1. Используйте тег "КОД" чтобы код можно было прочесть
2. Не используйте подчеркивания перед именами переменных и не используйте двойных подчеркиваний вообще.
3. Должно нормально компилироватся (во всяком случае эту ошибку он не должен выдавать)
4. Вы уверен что Helper и Matrix нужны разные типы шаблона?

какой код вы компилируете и каким компилятором? покажите полный код с функцией main.

этот
Код

int main()
{
    Matrix<int> t(1, 2);
    return 0;
}

у меня скомпилировался без ошибок.

azesmcar, программку надо написать на Билдере 5

а задачка, которую мне поставил руководитель, такая:

есть файл f.dat:  
4545 22
1 5 1 0.3 4 4 7 13 12.4 -3.2 0.9 5 5 5 5 12 8 4
3 12 3 7 7 7 5 5.5 3 12 3 4 5 7 9 0.57 5 7
5050 2
0.4 0.41 5 6 6 1 12 4.67 6.54 4 6 34 5 7.8 6 4 4 2
4545 4
0.12 0.96 9 7 8 9 9 4 3.4 1 2.8 6 6.1 4 7 8 5 12
4545 7
2 2 13 0.9 -2.3 5 8 6.99 -0.97 5.55 6.12 -3.01 6 4.14 12 12 0.42 5
0.21 0.43 7 13 5.12 3 8 6.43 -6.13 8.71 8.71 0.94 9.03 -12.11 3.14 3.01 -6.4 -6.007
0.71 -0.43 0.31 0.44 1.11 4 6 6 5.12 -0.12 6.74 123.5 8.1 -4.14 0.12 3.31 6.9 6.9
, где строки типа "4545 22", "5050 2" ,"4545 4" ,"4545 7"-своеобразные идентификаторы 
 выделенные элементы-своеобразные пары ключей, которым привязаны следующие 16 элементов (некая матрица), то есть пара ключей (1 5) и привязанная к ним матрица 4х4 в виде строки (1 0.3 4 4 7 13 12.4 -3.2 0.9 5 5 5 5 12 8 4)
ЗАДАЧА: надо разнести f.dat по новой матрице 2х2, где каждый элемент будет состоять как раз наборов (ключ1, ключ2) и соответствующей матрицей 4х4
то есть например в матрице М(2х2) элемент М[0][0]  будет состоять из 
(1 5) <->1 0.3 4 4 7 13 12.4 -3.2 0.9 5 5 5 5 12 8 4
(3 12)<->3 7 7 7 5 5.5 3 12 3 4 5 7 9 0.57 5 7


Постаралсь обрисовать задачу полностью

а о Ваших вопросах:
1-   что-то я не поняла smile
2- подчеркивания можут вылиться в ошибки?
3- попроую, но сомневаюсь, что не будет выдавать ошибку :(
4- вроде нужны разные типы





matrix.h
#ifndef __MATRIX_H__
#define __MATRIX_H__

#include <stdexcept>

template <class T>
class Matrix
{
    T*           data;
    unsigned int rows;
    unsigned int cols;

    T* new_copy(const T* src, unsigned int src_size, unsigned int dst_size)
    {
        T* dest = new T[dst_size];
            copy(src, src + src_size, dest);
        return dest;
    }

public:
    Matrix(unsigned int _rows, unsigned int _cols):
        rows(_rows),
        cols(_cols)
    { data = new T[rows * cols]; }

    ~Matrix()
    { delete[] data; }

    Matrix(const Matrix& m):
        data(new_copy(m.data,  *m.rows, *m.cols)),
        rows(m.rows), cols(m.cols){}

    Matrix& operator=(const Matrix& m)
    {
        if (this != &m)
        {
            T* temp = new_copy(m.data, *m.rows, *m.cols);
            delete[] data;
            data = temp;
            rows = m.rows;
            cols = m.cols;
        }
        return *this;
    }


    template<class U>
    class Helper
    {
        Matrix<U>&   matrix;
        unsigned int i;

        Helper(Matrix<U>& _mc, unsigned int _i): matrix(_mc), i(_i) {};
        Helper(const Matrix<U>& _mc, unsigned int _i): matrix(const_cast<Matrix&>(_mc)), i(_i) {};
        Helper(const Helper&);
        Helper& operator=(const Helper&);

        friend class Matrix<U>;

    public:

        U& operator[](unsigned int k)
        {
            return matrix.data[matrix.cols * i + k];
        }
    };

    Helper<T> operator[](unsigned int i)
    {
        return Helper<T>(*this, i);
    }

};

#endif //__MATRIX_H__


//main file
matrix.cpp
// Matrix.cpp : Defines the entry point for the console application.

#include "Libb\Matrix.h"
#include <iostream.h>
#include <fstream.h>
#include <map.h>
#include <utility.h>
#include <conio.h>
#include <list.h>
#include <vcl.h>
const int SIGN_F = 4545;

using namespace std;

typedef pair<double, double>                DoublePair;// para kluchey
typedef Matrix<double>                      DoubleMatrix; //matrix 4x4
typedef map<DoublePair, DoubleMatrix >      Inner;
typedef Matrix<Inner>                       QMatrix;        // need matrix Q=NxM=pair<tetta,fi> <=>Mueller matrix


void check(const QMatrix& q)
{
    cout << "---------- check -----------" << endl;
    for(int i = 0; i < 2; ++i)
        for(int k = 0; k < 2; ++k)
        {
            cout << "[" << i << "][" << k << "]:" << endl;
            const Inner& inn = q[i][k];
            for(Inner::const_iterator it = inn.begin(); it != inn.end(); ++it)
            {
                for(int m = 0; m < 4; ++m)
                    for(int n = 0; n < 4; ++n)
                        cout << it->second[m][n] << " ";
                cout << endl;
            }
            cout << endl;
        }
    cout << "----------------------------" << endl;
}


void read(ifstream &fs, QMatrix& q, int row, int col)
{
  
    DoublePair         pair;       // pair id1,id2
    DoubleMatrix    mx(4, 4);        // matrix 4х4
    Inner           inner;            //common structure with id1, id2 <=> matrix 4x4

    int sign, index;
    int current_pos;

 
    fs >> sign >> index;

   
    while(!fs.eof())
    {
       
        current_pos = fs.tellg();                
        fs >> sign;
        if (SIGN_F == sign)
        {
            fs.seekg(current_pos);      
            q[row][col] = inner;        
            return;
        }
        else
        {
            fs.seekg(current_pos);
            fs >> pair.first >> pair.second;         
            for(int i = 0; i < 4; ++i)
                for(int k = 0; k < 4; ++k)
                    fs >> mx[i][k];
            inner.insert(make_pair(pair, mx));
        }
    }
    
    q[row][col] = inner;
}

int main(int argc, char* argv[])
{
    ifstream file("f.dat");
    if (file.fail())
    {
        cout << "Unable open file!" << endl;
        return -1;
    }

    QMatrix Q(2, 2);    

        for(int row = 0; row < 2; ++row)
            for(int col = 0; col < 2; ++col)
            {
                read(file, Q, row, col);
            }
        check(Q);
        getch();
    return 0;
}

ЗАРАНЕЕ СЕНКС за будущий Help

Добавлено через 3 минуты и 22 секунды
Цитата(azesmcar @ 19.3.2009,  07:56)
1. Используйте тег "КОД" чтобы код можно было прочесть
2. Не используйте подчеркивания перед именами переменных и не используйте двойных подчеркиваний вообще.
3. Должно нормально компилироватся (во всяком случае эту ошибку он не должен выдавать)
4. Вы уверены что Helper и Matrix нужны разные типы шаблона?

какой код вы компилируете и каким компилятором? покажите полный код с функцией main.

этот
Код

int main()
{
    Matrix<int> t(1, 2);
    return 0;
}

у меня скомпилировался без ошибок.

А Вы наверное компилировали на, например, MSVC++ 2005, что у не возникло проблем...там компилируется и нормально отрабатывает код, но надо на Билдере :( 
PM MAIL   Вверх
azesmcar
Дата 19.3.2009, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата

1-   что-то я не поняла smile
2- подчеркивания можут вылиться в ошибки?
3- попроую, но сомневаюсь, что не будет выдавать ошибку :(
4- вроде нужны разные типы


1. На форуме, когда отправляете какой нибудь source, сверху есть кнопка "Код", нажмите ее предварительно выделив. Отредактируйте сейчас, а то читать невозможно.
2. Могут, подчеркивания перед переменными и двойные подчеркивания зарезервированы для внутреннего использования (например для СТЛ).

Не знаю как насчет билдера, не могу попробовать тем более пятой версией..но с обявлением френда тут ошибок не вижу. Все нормально.

Это сообщение отредактировал(а) azesmcar - 19.3.2009, 08:46
PM   Вверх
vinter
Дата 19.3.2009, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



Цитата(Dimetra @  19.3.2009,  09:39 Найти цитируемый пост)
ЗАРАНЕЕ СЕНКС за будущий Help 

listen в your коде нет errors заченжи свой compiler и енжойся


--------------------
Мой блог
PM MAIL WWW   Вверх
azesmcar
Дата 19.3.2009, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Код

template <class T>
class A
{

};

template <class U>
class B
{
    friend class A<U>;
};


int main()
{
    return 0;
}



как билдер реагирует на этот код? проверьте
PM   Вверх
Dimetra
Дата 19.3.2009, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Цитата(azesmcar @ 19.3.2009,  08:49)
Код

template <class T>
class A
{

};

template <class U>
class B
{
    friend class A<U>;
};


int main()
{
    return 0;
}



как билдер реагирует на этот код? проверьте

на этот код он реагирует нормально-все компилируется

Добавлено через 1 минуту и 31 секунду
Цитата(vinter @ 19.3.2009,  08:48)
Цитата(Dimetra @  19.3.2009,  09:39 Найти цитируемый пост)
ЗАРАНЕЕ СЕНКС за будущий Help 

listen в your коде нет errors заченжи свой compiler и енжойся

Подскажите, на какой compiler его заменить и где его взять

Добавлено через 4 минуты и 3 секунды
Цитата(azesmcar @ 19.3.2009,  08:45)
Цитата

1-   что-то я не поняла smile
2- подчеркивания можут вылиться в ошибки?
3- попроую, но сомневаюсь, что не будет выдавать ошибку :(
4- вроде нужны разные типы


1. На форуме, когда отправляете какой нибудь source, сверху есть кнопка "Код", нажмите ее предварительно выделив. Отредактируйте сейчас, а то читать невозможно.
2. Могут, подчеркивания перед переменными и двойные подчеркивания зарезервированы для внутреннего использования (например для СТЛ).

Не знаю как насчет билдера, не могу попробовать тем более пятой версией..но с обявлением френда тут ошибок не вижу. Все нормально.

azesmcar, программку надо написать на Билдере 5

а задачка, которую мне поставил руководитель, такая:

есть файл f.dat:  
4545 22
1 5 1 0.3 4 4 7 13 12.4 -3.2 0.9 5 5 5 5 12 8 4
3 12 3 7 7 7 5 5.5 3 12 3 4 5 7 9 0.57 5 7
5050 2
0.4 0.41 5 6 6 1 12 4.67 6.54 4 6 34 5 7.8 6 4 4 2
4545 4
0.12 0.96 9 7 8 9 9 4 3.4 1 2.8 6 6.1 4 7 8 5 12
4545 7
2 2 13 0.9 -2.3 5 8 6.99 -0.97 5.55 6.12 -3.01 6 4.14 12 12 0.42 5
0.21 0.43 7 13 5.12 3 8 6.43 -6.13 8.71 8.71 0.94 9.03 -12.11 3.14 3.01 -6.4 -6.007
0.71 -0.43 0.31 0.44 1.11 4 6 6 5.12 -0.12 6.74 123.5 8.1 -4.14 0.12 3.31 6.9 6.9
, где строки типа "4545 22", "5050 2" ,"4545 4" ,"4545 7"-своеобразные идентификаторы 
 выделенные элементы-своеобразные пары ключей, которым привязаны следующие 16 элементов (некая матрица), то есть пара ключей (1 5) и привязанная к ним матрица 4х4 в виде строки (1 0.3 4 4 7 13 12.4 -3.2 0.9 5 5 5 5 12 8 4)
ЗАДАЧА: надо разнести f.dat по новой матрице 2х2, где каждый элемент будет состоять как раз наборов (ключ1, ключ2) и соответствующей матрицей 4х4
то есть например в матрице М(2х2) элемент М[0][0]  будет состоять из 
(1 5) <->1 0.3 4 4 7 13 12.4 -3.2 0.9 5 5 5 5 12 8 4
(3 12)<->3 7 7 7 5 5.5 3 12 3 4 5 7 9 0.57 5 7


Постаралсь обрисовать задачу полностью

а о Ваших вопросах:
1-   что-то я не поняла 
2- подчеркивания можут вылиться в ошибки?
3- попроую, но сомневаюсь, что не будет выдавать ошибку :(
4- вроде нужны разные типы





Код

matrix.h
#ifndef __MATRIX_H__
#define __MATRIX_H__

#include <stdexcept>

template <class T>
class Matrix
{
    T*           data;
    unsigned int rows;
    unsigned int cols;

    T* new_copy(const T* src, unsigned int src_size, unsigned int dst_size)
    {
        T* dest = new T[dst_size];
            copy(src, src + src_size, dest);
        return dest;
    }

public:
    Matrix(unsigned int _rows, unsigned int _cols):
        rows(_rows),
        cols(_cols)
    { data = new T[rows * cols]; }

    ~Matrix()
    { delete[] data; }

    Matrix(const Matrix& m):
        data(new_copy(m.data,  *m.rows, *m.cols)),
        rows(m.rows), cols(m.cols){}

    Matrix& operator=(const Matrix& m)
    {
        if (this != &m)
        {
            T* temp = new_copy(m.data, *m.rows, *m.cols);
            delete[] data;
            data = temp;
            rows = m.rows;
            cols = m.cols;
        }
        return *this;
    }


    template<class U>
    class Helper
    {
        Matrix<U>&   matrix;
        unsigned int i;

        Helper(Matrix<U>& _mc, unsigned int _i): matrix(_mc), i(_i) {};
        Helper(const Matrix<U>& _mc, unsigned int _i): matrix(const_cast<Matrix&>(_mc)), i(_i) {};
        Helper(const Helper&);
        Helper& operator=(const Helper&);

        friend class Matrix<U>;

    public:

        U& operator[](unsigned int k)
        {
            return matrix.data[matrix.cols * i + k];
        }
    };

    Helper<T> operator[](unsigned int i)
    {
        return Helper<T>(*this, i);
    }

};

#endif //__MATRIX_H__



//main file
matrix.cpp
/
Код

/ Matrix.cpp : Defines the entry point for the console application.

#include "Libb\Matrix.h"
#include <iostream.h>
#include <fstream.h>
#include <map.h>
#include <utility.h>
#include <conio.h>
#include <list.h>
#include <vcl.h>
const int SIGN_F = 4545;

using namespace std;

typedef pair<double, double>                DoublePair;// para kluchey
typedef Matrix<double>                      DoubleMatrix; //matrix 4x4
typedef map<DoublePair, DoubleMatrix >      Inner;
typedef Matrix<Inner>                       QMatrix;        // need matrix Q=NxM=pair<tetta,fi> <=>Mueller matrix


void check(const QMatrix& q)
{
    cout << "---------- check -----------" << endl;
    for(int i = 0; i < 2; ++i)
        for(int k = 0; k < 2; ++k)
        {
            cout << "[" << i << "][" << k << "]:" << endl;
            const Inner& inn = q[i][k];
            for(Inner::const_iterator it = inn.begin(); it != inn.end(); ++it)
            {
                for(int m = 0; m < 4; ++m)
                    for(int n = 0; n < 4; ++n)
                        cout << it->second[m][n] << " ";
                cout << endl;
            }
            cout << endl;
        }
    cout << "----------------------------" << endl;
}


void read(ifstream &fs, QMatrix& q, int row, int col)
{
  
    DoublePair         pair;       // pair id1,id2
    DoubleMatrix    mx(4, 4);        // matrix 4х4
    Inner           inner;            //common structure with id1, id2 <=> matrix 4x4

    int sign, index;
    int current_pos;

 
    fs >> sign >> index;

   
    while(!fs.eof())
    {
       
        current_pos = fs.tellg();                
        fs >> sign;
        if (SIGN_F == sign)
        {
            fs.seekg(current_pos);      
            q[row][col] = inner;        
            return;
        }
        else
        {
            fs.seekg(current_pos);
            fs >> pair.first >> pair.second;         
            for(int i = 0; i < 4; ++i)
                for(int k = 0; k < 4; ++k)
                    fs >> mx[i][k];
            inner.insert(make_pair(pair, mx));
        }
    }
    
    q[row][col] = inner;
}

int main(int argc, char* argv[])
{
    ifstream file("f.dat");
    if (file.fail())
    {
        cout << "Unable open file!" << endl;
        return -1;
    }

  QMatrix Q(2, 2);    

        for(int row = 0; row < 2; ++row)
            for(int col = 0; col < 2; ++col)
            {
                read(file, Q, row, col);
            }
        check(Q);
        getch();
    return 0;
}


ЗАРАНЕЕ СЕНКС за будущий Help

Добавлено через 5 минут и 34 секунды
Цитата(azesmcar @ 19.3.2009,  08:45)
Цитата

1-   что-то я не поняла smile
2- подчеркивания можут вылиться в ошибки?
3- попроую, но сомневаюсь, что не будет выдавать ошибку :(
4- вроде нужны разные типы


1. На форуме, когда отправляете какой нибудь source, сверху есть кнопка "Код", нажмите ее предварительно выделив. Отредактируйте сейчас, а то читать невозможно.
2. Могут, подчеркивания перед переменными и двойные подчеркивания зарезервированы для внутреннего использования (например для СТЛ).

Не знаю как насчет билдера, не могу попробовать тем более пятой версией..но с обявлением френда тут ошибок не вижу. Все нормально.

подчеркивания убрала и все равно не компилируется :(...те же ошибки
PM MAIL   Вверх
azesmcar
Дата 19.3.2009, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Код

template <class T>
class A
{
public:
    template <class U>
    class B
    {
        friend class A<U>;
    };
};


а как насчет этого? попробуйте вывести свой класс Helper за пределы класса Matrix.
Компиляторов нормальных множество. Посмотрите тут http://forum.vingrad.ru/forum/topic-49632.html

а кстати почему код без подсветки, и не надо дублировать сообщения. Есть кнопка редактировать.
user posted image
и для кода
user posted image
PM   Вверх
Dimetra
Дата 19.3.2009, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



1-я посмотрела по ссылке на компиляторы...они все платные что ли??? или у меня совсем тугос пониманием тезнического английского?:(

2-по Вашему примеру я попробывала скомпилировать matrix.cpp (matrix.h без изменений) , в таком виде
Код

int main(int argc, char* argv[])
{
    ifstream file("f.dat");
    if (file.fail())
    {
        cout << "Unable open file!" << endl;
        return -1;
    }
   
        getch();
    return 0;
}
 
 и все ок!

но если я добавила выделенную строку-то он уже начинает ругаться , что E2061: friends must be functions or classes...может Вам стало понятно ПОЧЕМУ? :(
Код

int main(int argc, char* argv[])
{
    ifstream file("f.dat");
    if (file.fail())
    {
        cout << "Unable open file!" << endl;
        return -1;
    }

  QMatrix Q(2, 2);    

       
        getch();

    return 0;
} 


3-а вытащить class Helper  за пределы class Matrix с шаблонами это как?

 smile 
PM MAIL   Вверх
azesmcar
Дата 19.3.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата

1-я посмотрела по ссылке на компиляторы...они все платные что ли??? или у меня совсем тугос пониманием тезнического английского?:(


нет, практически все бесплатные. Наверное только Визуал С++, и то даже микрософт уже бесплатную версию компилятора выпустил для студентов - http://www.microsoft.com/Express/

проблема тут с компилятором, смените его и все будет в порядке..я просто пытаюсь понять что именно не хочет билдер компилировать.

Добавлено через 38 секунд
Цитата

3-а вытащить class Helper  за пределы class Matrix с шаблонами это как?


а в чем проблема? вы же не используете параметр шаблона класса Matrix в классе Helper.
PM   Вверх
Dimetra
Дата 19.3.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



так я же потом изпользую объявленный Helper потом в Matrix



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0639 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.