Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для cmath
2525 / 1751 / 152
Регистрация: 11.08.2012
Сообщений: 3,349

Проблемы с объявлением функции-члена класса

21.03.2013, 06:03. Показов 1007. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Пишу программу, реализующую простые матричные операции (сложение, вычитание и прочее).
Код:
matrix.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class matrix
{
private:
    double **entries;
    int dim;
public:
    matrix(int);
    ~matrix();
    void set_e(int, int, double);
    int get_dim();
    double get_e(int, int);
};
 
matrix add(matrix A, matrix B);
matrix.cpp
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "matrix.h"
 
matrix::matrix(int n)
{
    dim = n;
    entries = new double*[dim];
    for(int i = 0; i < dim; i++)
    {
        entries[i] = new double[dim];
        for(int j = 0; j < dim; j++)
        {
            entries[i][j] = 0;
        }
    }
}
 
int matrix::get_dim()
{
    return dim;
}
 
void matrix::set_e(int i, int j, double value)
{
    if(i >= dim || j >= dim) 
    {
        abort();
    }
    else
    {
        entries[i][j] = value; 
    }
}
 
double matrix::get_e(int i, int j)
{
    if(i >= dim || j >= dim)
    {
        return 0;
        abort();
    }
    else
    {
        return entries[i][j];
    }
}
 
matrix add(matrix A, matrix B) // еще не закончил править эту функцию, поэтому код не полный
{
    if(A.get_dim() != B.get_dim())
    {
    }
    else
    {
        matrix C(A.get_dim());
        for(int i = 0; i < C.get_dim(); i++)
        {
            for(int j = 0; j < C.get_dim(); j++)
            {
                C.set_e(i, j, A.get_e(i, j) + B.get_e(i, j));
            }
        }
        return C;
    }
}
Столкнулся со следующей проблемой: метод get_dim компилятор почему-то не считает методом класса matrix, и при использовании в функции add выдает ошибку о неразрешенном внешнем символе. Кроме того, любой новый метод, который я дописываю после, также почему-то считается внешним (хотя объявлен внутри конструкции class после строки с public). Помогите исправить ошибку пожалуйста. Заранее благодарен за ответы.


Не по теме:

Среда - VC++ 2008

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2013, 06:03
Ответы с готовыми решениями:

Можно ли сделать поле класса параметром функции-члена этого же класса?
Здраствуйте. ref class MyClass { private: int i, j; array&lt;array&lt;int&gt;^&gt;^ X1; array&lt;array&lt;int&gt;^&gt;^ X2; public: ...

Сам вопрос: почему функция-член одного класса не вызывается из функции-члена другого класса?
//Щас всё объясню. Так, имеем два класса, в одном я определил функцию-член. Все конструкторы и прочее //опущены для уменьшения кода ...

Функции в качестве члена класса
Вот изучаю классы, и я так понял,можно описывать функции вне класса, достаточно знака &quot;: :&quot;. Вот решил написать,...

2
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
21.03.2013, 13:05
Где реализация деструктора?

C++
1
2
matrix::~matrix(){
}
0
 Аватар для cmath
2525 / 1751 / 152
Регистрация: 11.08.2012
Сообщений: 3,349
21.03.2013, 14:27  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Где реализация деструктора?

Не по теме:

matrix.cpp скопировал не полностью:pardon:


C++
1
2
3
4
5
matrix::~matrix()
{
    for(int i = 0; i < dim; i++)delete []entries[i];
    delete []entries;
}
Я его как-то неверно написал? Это как влияет на
Цитата Сообщение от cmath Посмотреть сообщение
метод get_dim компилятор почему-то не считает методом класса matrix
?

Не по теме:

Хм... думал, может баг компилятора.



Решил проблему: создал новые файлики .h и .cpp и скопировал код туда. Старые файлы стёр. Программа заработала.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2013, 14:27
Помогаю со студенческими работами здесь

Передача функции-члена класса в pthread_create
Здравствуйте, товарищи! Существует ли корректный способ передать указатель на функцию-член класса в качестве параметра в функцию...

Определить операторы как функции члена класса
Добрый вечер! Ребята, помогите решить вот такую задачку: Необходимо определить операторы +, =, +=, -=, *=, , как функции члена...

Вызов функции-члена класса по адресу в памяти
Всем хорошего дня :) Допустим, что где-то есть static функция, не принимающая аргументов и ничего не возвращающая. Имея один лишь...

Объявление класса, создание объекта и вызов функции-члена
Всем добрый день! Вот так я объявляю класс. typedef map&lt;string, double&gt; datablock; typedef map&lt;string, string&gt; groupvars;...

Необработанное исключение при вызове функции-члена класса
Добрый день! Изучаю основы c++ по Страуструпу и при решении одной задачи столкнулся с проблемой. Есть 3 класса Book, ISBN, Library -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru