Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 30.11.2016
Сообщений: 19

Структуры, методы классов

04.01.2018, 12:10. Показов 2402. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
class TElec
{
private:
    elec *elecs;
    int koli;//кол-во элементов в массиве
    int r1, r2, r3; char r11[4] = "ФИО", r22[8] = "Партия", r33[8] = "Округ", r44[32] = "Количество голосов";
    char config[16] = "config.txt";
public:
 
    TElec() {
        elecs = (elec *)malloc(0);
        koli = 0;
        read_config(config);
    };
 
    void TElec::razmetka() {//"шапка" для  списка
        printf("%*s||%*s||%*s||%s\n", r1, r11, r2, r22, r3, r33, r44);
    }
 
 
    void read_config(char *s) {
        FILE *con = fopen(s, "r");
        fscanf(con, "%i %i %i", &r1, &r2, &r3);
        fclose(con);
    };
};
в чем может быть причина проблемы...
ругается на "void TElec::razmetka()"
"Ошибка C4596 razmetka: недопустимое полное имя в объявлении члена
Ошибка (активно) E0427 использование полного имени в объявлении члена не допускается"
хотя вроде как точно такое же написание использовал в прошлом "проекте" и все было хорошо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.01.2018, 12:10
Ответы с готовыми решениями:

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов)
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов. Как вынести методы из классов Panel и...

Виртуальные методы стандартных классов C++
Подскажите в каких стандартных(базовых) классах есть виртуальные методы? Есть ли в String?

Классы, конструкторы, деструкторы, методы классов
Доброго времени суток , Господа программисты. :) Очень нужна Ваша помощь. Написал программу, но никак не получается сделать последний...

5
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
04.01.2018, 12:27
Здравствуйте!
Вы метод razmetka реализуете внутри описания класса и при этом используете
Цитата Сообщение от ob_ekt_195 Посмотреть сообщение
void TElec::razmetka()
Это полное имя метода (используется при реализации вне класса). Уберите
Цитата Сообщение от ob_ekt_195 Посмотреть сообщение
TElec::
. Должно остаться просто
C++
1
void razmetka(){...}
. Должно получиться.
1
0 / 0 / 0
Регистрация: 30.11.2016
Сообщений: 19
04.01.2018, 12:43  [ТС]
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
class TGoods {
    private:
        char main_name[25];
        char type[20];
        char second_name[25];
        int price;
        int life;
        int number;
        int f1 = -25, f2 = -20, f3 = -25, f4 = -7, f5 = -15;
        char t1[5] = "Цена", t2[14] = "срок годности", t3[10] = "Количесво";
 
    public:
        struct TGood
        {
            char main_name_s[25];
            char type_s[20];
            char second_name_s[25];
            int price_s;
            int life_s;
            int number_s;
        };
        TGoods() {
            strcpy(main_name, "Наименование");
            strcpy(type, "Тип товара");
            strcpy(second_name, "Производитель");
            price = 0;
            life = 0;
            number = 0;
        };
        TGoods(char *a, char *b, char *c, int d, int e, int f) {
            strcpy(main_name, a);
            strcpy(type, b);
            strcpy(second_name, c);
            price = d;
            life = e;
            number = f;
        };
        void TGoods::Tprint() { //вывод товаров
            printf("%*s||%*s||%*s||%*i||%*i||%i\n", f1, main_name, f2, type, f3, second_name, f4, price, f5, life, number);
        }
        void TGoods::razmetka() { //"шапка" для  списка
            printf("%*s||%*s||%*s||%*s||%*s||%s\n", f1, main_name, f2, type, f3, second_name, f4, t1, f5, t2, t3);
        }
 
        char *get_main_name() { return main_name; }
        char *get_type() { return type; }
        char *get_second_name() { return second_name; }
        int get_price() { return price; }
        int get_life() { return life; }
        int get_number() { return number; }
 
        void set_main_name( char *a) { strcpy(main_name, a); }
        void set_type(char *b) { strcpy(type, b); }
        void set_second_name(char *c) { strcpy(second_name, c); }
        void set_price(int d) { price = d; }
        void set_life(int e) { life = e; }
        void set_number(int f) { number = f; }
};
ну вот другая программа. так же реализовано... и все работает
0
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
04.01.2018, 13:01
ob_ekt_195, интересно...
Вы каким компилятором пользуетесь?
Вот беру сигнатуру Вашего класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class TGoods {
    private:
       
    public:
        struct TGood
        {
            
        };
        TGoods() {
            
        };
        TGoods(char *a, char *b, char *c, int d, int e, int f) {
            
        };
        void TGoods::Tprint() { //вывод товаров
            //printf("%*s||%*s||%*s||%*i||%*i||%i\n", f1, main_name, f2, type, f3, second_name, f4, price, f5, life, number);
        }
        void TGoods::razmetka() { //"шапка" для  списка
           // printf("%*s||%*s||%*s||%*s||%*s||%s\n", f1, main_name, f2, type, f3, second_name, f4, t1, f5, t2, t3);
        }
 
        
};
и пытаюсь компилировать (GCC Linux, к Windows сейчас доступа не имею).
Выдает
main.cpp:17:14: ошибка: избыточная квалификация «TGoods::» элемента «Tprint» [-fpermissive]
void TGoods::Tprint() { //вывод товаров
^
main.cpp:20:14: ошибка: избыточная квалификация «TGoods::» элемента «razmetka» [-fpermissive]
void TGoods::razmetka() { //"шапка" для списка
^
1
0 / 0 / 0
Регистрация: 30.11.2016
Сообщений: 19
04.01.2018, 13:09  [ТС]
студию использую маек.
не знаю. я сейчас не дома, поэтому не знаю, почему так... установил на ноут студию и вот проблемы наблюдаю. на стационаре все работало это. попробую свою предыдущую прогу поставить сюда. посмотрю будет ли ошибка или нет
0
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
04.01.2018, 13:16
Да, в этих тонкостях желательно разобраться (мало ли когда пригодиться)... Возможно там в настройках компилятора ответ кроется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.01.2018, 13:16
Помогаю со студенческими работами здесь

Наследование нескольких классов использующее виртуальные методы
Здравствуйте! Такое вот задание: Создать класс Number c виртуальными методами, реализующими арифметические операции. На его основе...

Какой доступ имеют методы и объекты классов между собой
Например у нас есть диаграмма классов. Объясните какой доступ имеют методы и объекты классов между собой. Как методы класса G могут...

Разбить программу на структуры и методы класса
Разбить программу на структуры(*.h (*.hpp)) и методы класса(*cpp) и помогите сделать, чтобы числа комплексные вводились с клавиатуры #...

Как передать SQL запрос через методы стандартных классов С++
Добрый день учасники форума. Пишу чат-бот. Возник вопрос. Подскажите пожалуйста каким образом можно передать обычный SQL запрос...

Классы, методы классов, методы экземпляров
Добрый день. Никак не могу разобраться в методах классов и объектов. 1) Зачем нам нужны методы класса, если мы постоянно создаем...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru