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

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

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

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

11.02.2011, 21:58. Просмотров 547. Ответов 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++
Есть такой код: CMainWindow MainWindow; CUITextView textTest; textTest.SetText(&quot;Text View Test&quot;); ...

Работа с классами в С++ - C++
Доброго всем дня.У меня возникла проблема с освоением языка C++ , сейчас пишу курсовую на этом языке, и ещё не совсем всё понимаю, но книги...

Работа с классами - C++
Есть класс Person, который описывает имя, возраст, телефон и пол : Потом надо поменять какую-нибудь информацию, например имя, что у меня...

Работа с классами - C++
Класс соревнование. В каждом соревновании по три участника и произвольное число туров. После проведения туров объявляется победитель. ...

Работа с классами - C++
Добрый день! Я столкнулся с проблемой которую не могу решить.Суть проблемы заключается в том что в классе Interface реализуется некая...

Работа с классами - C++
Добрый день, помогите написать программу которая создаёт класс Bool – логические переменные. Определить операторы &quot;+&quot; – логическое ИЛИ, ...

Работа с классами - C++
Помогите написать програмку задание следующее: Создать базовый класс «Грузоперевозчик» и производные классы «Самолет», «Поезд»,...

Работа с классами - C++
Ввести прямоугольную матрицу. Элементами матрицы являются символы. Пользователь может переставлять два любых символа в матрице, задавая...


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

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

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

То есть не getNums(x), а x.getNums() , не add(x), а x.add() ну и так далее.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
11.02.2011, 22:05     Работа с классами и их методами. #3
Первое что бросилось в глаза, void не обязательно писать, если функция-член не принимает аргументов.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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     Работа с классами и их методами.
Ответ Создать тему
Опции темы

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