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

Хранение прототипов методов класса и их непосредственной реализации в различных файлах - C++

Восстановить пароль Регистрация
 
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
20.03.2013, 00:08     Хранение прототипов методов класса и их непосредственной реализации в различных файлах #1
вот собственно решил перейти на тот этап, когда прототипы в *.h а определения в *.cpp но почти сразу столкнулся со странной ошибкой в элементарном примере:

C++
1
2
3
4
5
6
7
8
9
10
11
12
//point.hpp
class Point{
private:
        int x;
        int y;
public:
        Point();
        Point(int a, int b);
        ~Point();
        int sum();
        double sum2();
};
C++
1
2
3
4
5
6
7
//point.cpp
#include "point.hpp"
Point::Point(){x=y=0;}
Point::Point(int a, int b){x=a; y=b;}
Point::~Point(){}
Point::sum(){return x+y;}
Point::sum2(){return x+y;}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//main.cpp
#include "point.cpp"
#include <iostream.h>
int main()
{
Point t(1,2);
int z1=t.sum();
cout<<z1<<endl;
double z2=t.sum2();
cout<<z2<<endl;
system("pause");
        return 0;
}
при попытке компиляции получаю ошибку, что sum2() не член класса Point. забавно, что при расположении класса в одном файле с main() или же определении метода в point.hpp ошибка не возникает.
компилирую в borland builder'е 6
методы для поиска "в чем загвоздка" выполняют одно и то же, разница в названии и возвращаемом значении. вряд ли в названии мне кажется.
потому собственно и вопрос когда методы возвращающие double перестали быть членами класса... или все-таки в чем тут проблема?
Миниатюры
Хранение прототипов методов класса и их непосредственной реализации в различных файлах  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2013, 00:08     Хранение прототипов методов класса и их непосредственной реализации в различных файлах
Посмотрите здесь:

C++ Исследовать возможности адаптации различных методов сортировки к структуре исходного массива
DES / AES (Готовый пример или описание реализации различных этапов) C++
C++ ошибка в коде. Написать программу для выбора различных методов вычесления
Как избежать не нужной пустой реализации виртуальных методов в базовом классе? C++
Хранение экземпляров классов-наследников, и вызов их методов C++
C++ Хранение и вызов различных типов функций в одной переменной
На основе заданных прототипов реализовать функции-члены для пользовательского класса "Односвязный список" C++
C++ Как вынести описание методов вложенного класса за пределы класса?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
20.03.2013, 00:30  [ТС]     Хранение прототипов методов класса и их непосредственной реализации в различных файлах #2
разобрался. причина: банально неверный синтаксис был. работает вот так:
C++
1
2
3
4
5
6
#include "point.hpp"
Point::Point(){x=y=0;}
Point::Point(int a, int b){x=a; y=b;}
Point::~Point(){}
int Point::sum(){return x+y;}
double Point::sum2(){return x+y;}
вопрос снят
Yandex
Объявления
20.03.2013, 00:30     Хранение прототипов методов класса и их непосредственной реализации в различных файлах
Ответ Создать тему
Опции темы

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