Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Mars30
13 / 13 / 1
Регистрация: 16.12.2010
Сообщений: 265

Инициализация полей класса

18.06.2017, 14:03. Показов 866. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Не могу инициализировать в конструкторе поля класса. Интерфейс класса в отдельном файле. Компилятор ругается, пишет, что поля, которые я хочу инициализировать необъявленные идентификаторы. В чем проблема?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//sopr_grad.h
class optimization {
public:
 
int n1, n2, m;
long double **t_;
long double *s_;
long double *c_;
long double answer[10]; // значения х
 
 
optimization(int, int, long double **, long double *, long double *);
~optimization();
}

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
//sopr_grad.cpp
#include "sopr_grad.h"
 
optimization::optimization(int row, int col, long double **t, long double *s, long double *c) {
    n1 = row; //количество химических элементов
    n2 = col; //количество компонентов
    m = n2;
    t_ = new long double* [n1];
    for (int count = 0; count < n1; count++)
        t_[count] = new long double [n2];
    s_ = new long double [n1];
    c_ = new long double [n2];
    //long double *answer = new long double* [n2];
    for (int i = 0; i < n1; i++) {
        s_[i]= s[i];
        for (int j = 0; j < n2; j++)
            t_[i][j] = t[i][j];
    }
    for (int j = 0; j < n2; j++)
        c_[j] = c[j];
}
 
optimization::~optimization() {
    for (int count = 0; count < n11; count++)
        delete [] t_[count];
    delete [] s_;
    delete [] c_;
    //delete [] answer;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.06.2017, 14:03
Ответы с готовыми решениями:

Инициализация полей класса
Приветствую всех. Не в одной книге по С++ сказано, что поля класса желательно инициализировать в списке инициализации конструктора этого...

Инициализация полей класса через vector<>
Здравствуйте, можете подсказать как правильно инициализировать поля класса, вот например есть класс MyClass, в нем 2 поля int x int у,...

Инициализация полей во время объявления класса
Инициализировать поля класса во время его объявления возможно только если в классе отсутствует конструктор? По каким то ещё принципам можно...

10
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
18.06.2017, 14:47
Точки с запятой не вижу, после конца тела класса в sopr_grad.h.
0
 Аватар для Mars30
13 / 13 / 1
Регистрация: 16.12.2010
Сообщений: 265
18.06.2017, 15:17  [ТС]
nd2, добавила, результат тот же
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
18.06.2017, 15:23
Цитата Сообщение от Mars30 Посмотреть сообщение
добавила, результат тот же
Странно, если ошибки не изменились. Сделай перестроение, и полный вывод компилятора выложи.
0
 Аватар для Mars30
13 / 13 / 1
Регистрация: 16.12.2010
Сообщений: 265
18.06.2017, 15:26  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Странно, если ошибки не изменились. Полный вывод компилятора выложи.
Error 28 error C1903: unable to recover from previous error(s); stopping compilation C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 26 1 MDI
Error 18 error C2065: 'c_' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 15 1 MDI
Error 25 error C2065: 'c_' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 23 1 MDI
Error 9 error C2065: 'm' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 10 1 MDI
Error 7 error C2065: 'n1' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 8 1 MDI
Error 12 error C2065: 'n1' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 11 1 MDI
Error 13 error C2065: 'n1' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 12 1 MDI
Error 17 error C2065: 'n1' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 14 1 MDI
Error 20 error C2065: 'n1' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 17 1 MDI
Error 8 error C2065: 'n2' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 9 1 MDI
Error 10 error C2065: 'n2' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 10 1 MDI
Error 15 error C2065: 'n2' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 13 1 MDI
Error 19 error C2065: 'n2' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 15 1 MDI
Error 22 error C2065: 'n2' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 19 1 MDI
Error 24 error C2065: 'n2' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 22 1 MDI
Error 16 error C2065: 's_' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 14 1 MDI
Error 21 error C2065: 's_' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 18 1 MDI
Error 11 error C2065: 't_' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 11 1 MDI
Error 14 error C2065: 't_' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 13 1 MDI
Error 23 error C2065: 't_' : undeclared identifier C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 20 1 MDI
Error 1 error C2143: syntax error : missing ';' before 'using' c:\users\саша\documents\mdi\mdi\mdi\Ore_ mix_comp.h 6 1 MDI
Error 2 error C2143: syntax error : missing ';' before 'using' c:\users\саша\documents\mdi\mdi\mdi\Ore_ mix_comp.h 6 1 MDI
Error 3 error C2143: syntax error : missing ';' before 'using' c:\users\саша\documents\mdi\mdi\mdi\Ore_ mix_comp.h 6 1 MDI
Error 29 error C2143: syntax error : missing ';' before 'using' c:\users\саша\documents\mdi\mdi\mdi\Ore_ mix_comp.h 6 1 MDI
Error 5 error C2653: 'optimization' : is not a class or namespace name C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 7 1 MDI
Error 27 error C2653: 'optimization' : is not a class or namespace name C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 26 1 MDI
Error 6 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 7 1 MDI
Warning 26 warning C4508: 'optimization' : function should return a value; 'void' return type assumed C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 24 1 MDI
Warning 4 warning C4627: '#include "sopr_grad.h"': skipped when looking for precompiled header use C:\Users\Саша\Documents\MDI\MDI\MDI\sopr _grad.cpp 1 1 MDI
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
18.06.2017, 15:34
Цитата Сообщение от nd2 Посмотреть сообщение
Сделай перестроение, и полный вывод компилятора выложи.
Перестроение, и полный вывод, с начала. Это не полный. В Ore_mix_comp.h что?
0
 Аватар для Mars30
13 / 13 / 1
Регистрация: 16.12.2010
Сообщений: 265
18.06.2017, 15:40  [ТС]
nd2, перестроила, то же самое все, давайте просто проект кину. Ore_mix_comp.h это форма, она не имеет отношение к этому классу
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
18.06.2017, 15:45
Выкладывай проект, но я ушёл. Только вечером смогу посмотреть.
0
 Аватар для Mars30
13 / 13 / 1
Регистрация: 16.12.2010
Сообщений: 265
18.06.2017, 15:50  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Выкладывай проект, но я ушёл. Только вечером смогу посмотреть.
вот
Вложения
Тип файла: rar MDI.rar (4.48 Мб, 2 просмотров)
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
18.06.2017, 22:14
Цитата Сообщение от Mars30 Посмотреть сообщение
вот
Вот это компилятор разве не выдавал?
1>sopr_grad.cpp(1): warning C4627: #include "sopr_grad.h": пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "StdAfx.h" или перестройка предкомпилированного заголовка
Эта директива должна быть выше всех остальных инклудов:
C++
1
#include "stdafx.h"
Добавлено через 4 минуты
После тела класса Calc, точки с запятой тоже нет, и реализаций для класса нет.

Добавлено через 2 минуты
Цитата Сообщение от Mars30 Посмотреть сообщение
C++
1
2
3
optimization::~optimization() 
{ 
    for (int count = 0; count < n11; count++)
n11 откуда в классе взялся?
1
 Аватар для Mars30
13 / 13 / 1
Регистрация: 16.12.2010
Сообщений: 265
18.06.2017, 22:32  [ТС]
nd2, дааа... ошибки глупые были)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.06.2017, 22:32
Помогаю со студенческими работами здесь

Инициализация полей класса при наследовании
Всем добрый вечер. Возникла у меня небольшая задачка, которую никак не могу решить. Имеем базовый класс с константным полем: class A{...

Инициализация полей структуры в конструкторе по-умолчанию класса
Всем привет! #include &lt;string&gt; #include &lt;vector&gt; #pragma once class StudentsList { public:

Инициализация вещественных статических константных полей класса С++
static const double x=2.15; //c double и float не инициализирует. Почему??

Инициализация шаблонного класса(В конструкторе класса после двоеточия вновь имя класса)
Всем доброго времени суток! Пытаюсь разобраться как работает приведенный мной код. Конкретно, пытаюсь разобраться что происходит в...

Создать класс CheckerBoard (особенности строения класса - инициализация константных членов класса)
Вот код: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; const int xSize = 1; const int ySize = 1; class...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru