Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
VenCarbon
33 / 32 / 7
Регистрация: 14.12.2010
Сообщений: 159
#1

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

11.02.2011, 21:58. Просмотров 596. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2011, 21:58
Ответы с готовыми решениями:

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

Работа с классами
Здравствуйте, я здесь первый раз, если что извините, за неккоректность, ввода...

Работа с классами
Есть такой код: CMainWindow MainWindow; CUITextView textTest; ...

Работа с классами
Ввести прямоугольную матрицу. Элементами матрицы являются символы. Пользователь...

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

4
lemegeton
2933 / 1362 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
11.02.2011, 22:04 #2
Назовем класс numerals, а все переменные этого класса -- объектами класса. Функции внутри класса назовем методами класса.

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

То есть не getNums(x), а x.getNums() , не add(x), а x.add() ну и так далее.
1
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
11.02.2011, 22:05 #3
Первое что бросилось в глаза, void не обязательно писать, если функция-член не принимает аргументов.
0
silent_1991
Эксперт С++
5007 / 3067 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
11.02.2011, 22:06 #4
Погодите, а зачем вообще передавать функциям какие-то параметры? Они же по идее должны использовать члены-данные класса.

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

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

Добавлено через 8 минут
Все исправила, всем спасибо! Все работает.
0
11.02.2011, 22:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2011, 22:16

Работа с классами
Добрый день, на днях наткнулся на одну статью про работу с классами и не...

Работа с классами
Наверно классическая задачка для тех, кто только начинает изучать классы. Есть...

Работа с классами
плиз помогите решить нужно написать функции которыи будут выполнять сложение,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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