Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
35 / 34 / 7
Регистрация: 14.12.2010
Сообщений: 159

Работа с классами и их методами.

11.02.2011, 21:58. Показов 1018. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс numerals, состоящий из двух дробных чисел. Среди методов - сложение, вычитание, деление и умножение этих двух чисел.

Вот исходники:

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
#include "numerals.h"
using namespace std;
 
void main()
{
    numerals x;
    getNums();
    cout << add(x) << endl;
    cout << subtract(x) << endl;
    cout << devide(x) << endl;
    cout << multiply(x) <<endl;
    system("PAUSE");
}
numerals.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma once
 
class numerals
{
    double a, b;
public:
    numerals(void);
    ~numerals(void);
    double getNums();
    double add(double a, double b);
    double subtract(double a, double b);
    double devide(double a, double b);
    double multiply(double a, double b);
};
numerals.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
#include "numerals.h"
#include <iostream>
using namespace std;
 
numerals::numerals(void) {
    a = 0.0;
    b = 0.0;
};
 
numerals::~numerals(void) {
};
 
double numerals::getNums(void) {
    cin >> a;
    cin >> b;
    return a, b;
}
 
double numerals::add(double a, double b) {
    return a + b;
};
 
double numerals::subtract(double a, double b) {
    return a - b;
};
 
double numerals::devide(double a, double b) {
    return a / b;
};
 
double numerals::multiply(double a, double b) {
    return a * b;
};
Проблема в том, что при компиляции выводится 5 ошибок типа: "error C3861: '<МЕТОД>': identifier not found"

Я, может, что-то не то делаю?..
Если в коде есть еще какие-то ошибки, я потом их постараюсь сама исправить.) На данный момент меня интересует только эта проблема.
Не совсем пока разобралась с классами, так что прошу простить меня за ламер'истость.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2011, 21:58
Ответы с готовыми решениями:

Работа с классами и методами
Добрый день. Прошу не оставаться равнодушными !)) Помогите пожалуйста написать методы. Само задание и то что сделал прилагаю. Благодарю за...

Работа с классами и методами
Привет, кто подскажет правильно ли передаю координаты вектора для получения его длины? (файлы GetLenght.cpp и Action.cpp). Что-то в Action...

Работа с классами и методами
Доброго времени суток. У меня вот в чем вопрос. Есть 2 класса, Program и MyArray Часть кода класса Programm class Program {...

4
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
11.02.2011, 22:04
Назовем класс numerals, а все переменные этого класса -- объектами класса. Функции внутри класса назовем методами класса.

Эти функции - методы - определены для класса и для объекта класса -- х.
Т.е. вызывать надо не функцию, а метод класса, применительно к объекту класса.

То есть не getNums(x), а x.getNums() , не add(x), а x.add() ну и так далее.
1
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
11.02.2011, 22:05
Первое что бросилось в глаза, void не обязательно писать, если функция-член не принимает аргументов.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
11.02.2011, 22:06
Погодите, а зачем вообще передавать функциям какие-то параметры? Они же по идее должны использовать члены-данные класса.

Добавлено через 1 минуту
Ха, а в мэйн я и не глянул))) Не увидел того, что lemegeton заметил)))
1
35 / 34 / 7
Регистрация: 14.12.2010
Сообщений: 159
11.02.2011, 22:16  [ТС]
Цитата Сообщение от silent_1991 Посмотреть сообщение
Погодите, а зачем вообще передавать функциям какие-то параметры? Они же по идее должны использовать члены-данные класса.
Хмм... Да?.. Я, видимо, это упустила...

Добавлено через 50 секунд
Цитата Сообщение от lemegeton Посмотреть сообщение
Назовем класс numerals, а все переменные этого класса -- объектами класса. Функции внутри класса назовем методами класса.
Эти функции - методы - определены для класса и для объекта класса -- х.
Т.е. вызывать надо не функцию, а метод класса, применительно к объекту класса.
То есть не getNums(x), а x.getNums() , не add(x), а x.add() ну и так далее.
Черт... Точно, спасибо. Сейчас попробую

Добавлено через 8 минут
Все исправила, всем спасибо! Все работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.02.2011, 22:16
Помогаю со студенческими работами здесь

Работа с методами и классами
Доброго времени суток, почему-то не работает код: (чтобы было понятнее, то вот задание) Создать класс для работы сo строками...

Работа с generic классами и методами
Добрый день! Встал в ступор, надеюсь поможет кто разобраться. Имею следующую задачу: на основе некого сообщения и ключевых значений в...

Правильно ли я пишу? Работа с интерфейсом и двумя классами с аналогичными методами
Народ подскажите ли правильно я поступаю. У меня в задании по курсовой есть клиенты и обьекты у них есть...

файл с классами и методами
Добрый вечер, недавно начал учить c# и решил понемногу кодить небольшие приложения для самопрактики. Собственно есть студия 2010 содаю...

Перемещении между классами и методами
У меня есть 2 класса и 2 метода. Мне нужно, чтобы из одного он мог перейти в другой. Вот куски кода. 1) class Home_screen { ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru