Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390

подключение hpp и срр,что то не правильно сделал,классы

07.03.2010, 15:04. Показов 4939. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
сначала создаю hpp файл,в нем создаю интерфейс класса,потом срр файл создаю,в нем класс начинаю определять,а в меин.срр создаю объект..вобщем вот коды
employee.hpp
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
#include <windows.h>
#include <iostream> 
 
class employee{
 
    int age,years,salary;
    public:
 
        employee(int cage,int cyears,int calary){
        age=cage;
        years=cyears;
        salary=calary;      
        }
        ~employee(){}
 
        int getage() const;
        int setage(int sage);
        int getyears() const;
        int setyears(int sage);
        int getsal() const;
        int setsal(int sage);
 
        
 
};
employee.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int employee::getage()const{
        return age;
        }
        int setage(int sage){
        return age=sage;
        }
    int employee::getyears()const{
        return years;
        }
        int employee::setyears(int syears){
        return years=syears;
        }
 
            int getsal()const{
        return salary;
        }
        int employee::setsal(int ssal){
        return salary=ssal;
                }
main();
C++
1
2
employee jon(20,1,1000);
cout<<"age "<<jon.getage()<<" salary "<<jon.getsal()<<" years "<<jon.getyears()<<endl;
ошибки
Error 1 error C2065: 'age' : undeclared identifier c:\Documents and Settings\AG\My Documents\Visual Studio 2008\Projects\proba\proba\employee.cpp 9 proba
Error 2 error C2270: 'getsal' : modifiers not allowed on nonmember functions c:\Documents and Settings\AG\My Documents\Visual Studio 2008\Projects\proba\proba\employee.cpp 18 proba
Error 3 error C2065: 'salary' : undeclared identifier c:\Documents and Settings\AG\My Documents\Visual Studio 2008\Projects\proba\proba\employee.cpp 19 proba
Error 20 error C2065: 'age' : undeclared identifier c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\employee.cpp 9 proba
Error 21 error C2270: 'getsal' : modifiers not allowed on nonmember functions c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\employee.cpp 18 proba
Error 22 error C2065: 'salary' : undeclared identifier c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\employee.cpp 19 proba
все эти ошибки жалуются на employee.cpp файл,мол не знает че это такое,хотя я подключил интерфейс

Добавлено через 2 минуты
поправил employee.cpp файл,там забыл перед функиями написать employee::....
вт написал,теперь хуже ошибки
Error 1 error LNK2005: "public: int __thiscall employee::setsal(int)" (?setsal@employee@@QAEHH@Z) already defined in code.obj employee.obj proba
Error 2 error LNK2005: "public: int __thiscall employee::getsal(void)const " (?getsal@employee@@QBEHXZ) already defined in code.obj employee.obj proba
Error 3 error LNK2005: "public: int __thiscall employee::setyears(int)" (?setyears@employee@@QAEHH@Z) already defined in code.obj employee.obj proba
Error 4 error LNK2005: "public: int __thiscall employee::getyears(void)const " (?getyears@employee@@QBEHXZ) already defined in code.obj employee.obj proba
Error 5 error LNK2005: "public: int __thiscall employee::setage(int)" (?setage@employee@@QAEHH@Z) already defined in code.obj employee.obj proba
Error 6 error LNK2005: "public: int __thiscall employee::getage(void)const " (?getage@employee@@QBEHXZ) already defined in code.obj employee.obj proba
Error 7 fatal error LNK1169: one or more multiply defined symbols found C:\Documents and Settings\AG\My Documents\Visual Studio 2008\Projects\proba\Release\proba.exe 1 proba
а че за ошибки,и где компилятор не говорит,при нажатии на ошибку
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.03.2010, 15:04
Ответы с готовыми решениями:

Что я не правильно сделал?
Есть задача: Есть три действительных числа, удвоить их если x&gt;=y&gt;=z и заменить их абсолютными величинами если это не так. { ...

Что-то не правильно сделал
Друзья! Разбирался с шаблоном форума, и столкнулся с проблемой... Картинка (Вообщем на картинке понятно) Нужно чтобы поле сообщений...

Прошу проверить. Не уверен, что сделал правильно
Доброе утро, форумчане! У меня такая вот проблема. С Mathcadом вообще не знаком, но нужно срочно сделать 14 задач до вечера. Так...

23
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
08.03.2010, 21:38  [ТС]
Студворк — интернет-сервис помощи студентам


Добавлено через 8 часов 51 минуту
все сделал как сказали...
ошибки
Error 1 error LNK2005: "public: int __thiscall rab::getage(void)" (?getage@rab@@QAEHXZ) already defined in code.obj rab.obj
Error 2 error LNK2005: "public: void __thiscall rab::setage(int)" (?setage@rab@@QAEXH@Z) already defined in code.obj rab.obj
Error 3 error LNK2005: "public: int __thiscall rab::getyears(void)" (?getyears@rab@@QAEHXZ) already defined in code.obj rab.obj
Error 4 error LNK2005: "public: void __thiscall rab::setyears(int)" (?setyears@rab@@QAEXH@Z) already defined in code.obj rab.obj
Error 5 error LNK2005: "public: int __thiscall rab::getsal(void)" (?getsal@rab@@QAEHXZ) already defined in code.obj rab.obj
Error 6 error LNK2005: "public: void __thiscall rab::setsal(int)" (?setsal@rab@@QAEXH@Z) already defined in code.obj rab.obj
Error 7 fatal error LNK1169: one or more multiply defined symbols found D:\C++ projects\proba\Debug\proba.exe 1

меин
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <windows.h>
#include<iostream>
#include "rab.cpp"
using namespace std;
int main(){
 
rab jon(20,1,1000);
    cout<<"age "<<jon.getage()<<" salary "<<jon.getsal()<<" years "<<jon.getyears()<<endl;
 
 
 
system("pause");
return 0;
}
раб.h
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
#ifndef RAB_H
#define RAB_H
class rab
{
      int age,years,salary;
      public:
 
      rab(int cage,int cyears,int calary)
      {
         age=cage;
         years=cyears;
         salary=calary;          
      }   
      rab()//конструктора по умолчанию больше нет! Нужно написать свой
      {
         age=0;
         years=0;
         salary=0;          
      }
      ~rab(){}
 
      int getage();
      void setage(int sage);
      int getyears();
      void setyears(int sage);
      int getsal();
      void setsal(int sage);              
};
#endif //RAB_H
раб.срр

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
#include "rab.h"
int rab::getage()
{
    return age;
}
 
void rab::setage(int sage)
{
    age=sage;
}
 
int rab::getyears()
{
    return years;
}
 
void rab::setyears(int syears)
{
    years=syears;
}
 
int rab::getsal()
{
    return salary;
}
 
void rab::setsal(int ssal)
{
    salary=ssal;
}

все те же ошибки

Добавлено через 2 минуты
лол я узнал...надо было не срр файл подключать а Н

Добавлено через 36 секунд
зы удалил endif-ы,ошибок нет
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
08.03.2010, 22:08
Для столь простых программ с одним подключённым классом те эндифы нужны как зайцу стопсигнал
Но лучше их сразу привыкать писать чем разбирать маты компилятора в программе в пару тысяч строк.
1
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
08.03.2010, 22:09  [ТС]
Delphin_KKC, спасибо
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
09.03.2010, 10:08
Если я не ошибаюсь, директива #include <header> указывает препроцессору, что в это место нужно вставить содержимое файла header (предварительно удалив из него все комментарии). Если не использовать связку #ifndef-#define-#endif, то при повторном подключении заголовочного файла header произойдет повторное определение всех функций и объектов, что приведет к ошибке. А так при первом подключении определяется уникальный идентификатор, который заставляет впоследствии пропускать препроцессор все, что заключено в блоке #ifndef-#endif.
ЗЫ, если компилятор позволяет, то вместо директив #ifndef... можно в начале заголовочного файла прописать директиву #pragma once (которая будет выполнять ту же функцию)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2010, 10:08

Сделал тестовое задание, ответили что я джун плюс, объясните что я сделал не так
Недавно попросили сделать вот это тестовое задание...

Вылетают файлы Python. Не понимаю что я сделал не правильно
Всем, здравствуйте! Не давно решил создать свой сайт. И Python File открывается и даже загружается не много, но вылетает. ( Я постарался...

Подскажите пожалуйста, что не так сделал и как нужно написать правильно
Идея такова : даны уравнения прямых а1х+b1y=c1, a2x+b2y=c2, a3x+b3y=c3. Выяснить, какие из этих прямых параллельны, а какие - нет.Само по...

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

Подключение в проекте .hpp и .cpp файлов
Добрый день! Среда разработки Code Blocks 13.12 Компилятор GNU GCC В проекте существует 3 файла в проекте - main.cpp, SW229.cpp и...


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

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

Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru