Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VenCarbon
32 / 31 / 3
Регистрация: 14.12.2010
Сообщений: 158
#1

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

11.02.2011, 21:58. Просмотров 536. Ответов 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"

Я, может, что-то не то делаю?..
Если в коде есть еще какие-то ошибки, я потом их постараюсь сама исправить.) На данный момент меня интересует только эта проблема.
Не совсем пока разобралась с классами, так что прошу простить меня за ламер'истость.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2011, 21:58     Работа с классами и их методами.
Посмотрите здесь:

работа с классами в С++ C++
Работа с классами в С++ C++
C++ Работа с классами
C++ Работа с классами
Работа с классами C++
C++ Работа с классами
Работа с классами C++
Работа с классами C++
C++ Работа с классами
C++ Работа с классами
C++ Работа с классами
C++ Работа с классами и методами

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
11.02.2011, 22:04     Работа с классами и их методами. #2
Назовем класс numerals, а все переменные этого класса -- объектами класса. Функции внутри класса назовем методами класса.

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

То есть не getNums(x), а x.getNums() , не add(x), а x.add() ну и так далее.
asics
Freelance
Эксперт C++
 Аватар для asics
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
11.02.2011, 22:05     Работа с классами и их методами. #3
Первое что бросилось в глаза, void не обязательно писать, если функция-член не принимает аргументов.
silent_1991
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,025
Завершенные тесты: 1
11.02.2011, 22:06     Работа с классами и их методами. #4
Погодите, а зачем вообще передавать функциям какие-то параметры? Они же по идее должны использовать члены-данные класса.

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

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

Добавлено через 8 минут
Все исправила, всем спасибо! Все работает.
Yandex
Объявления
11.02.2011, 22:16     Работа с классами и их методами.
Ответ Создать тему
Опции темы

Текущее время: 04:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru