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

classes, конструкторы.. - C++

Восстановить пароль Регистрация
 
papochka
 Аватар для papochka
32 / 32 / 2
Регистрация: 14.11.2009
Сообщений: 137
12.02.2011, 11:37     classes, конструкторы.. #1
Привет..

В общем такая фигня. Вот код:
Employee.h:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Employee
{
public:
    Employee(int ages, int yearsOfServices, int salarys);
    ~Employee();
    Employee();
 
    int getAge() const; 
    int getYearsOfService() const;
    int getSalary() const;
 
    void setAge(int ag);
    void setYearsOfService(int year);
    void setSalary(int salar);
 
private:
    int age;
    int yearsOfService;
    int salary;
};
Employee.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
34
35
36
37
38
39
40
41
#include "Employee.h"
 
Employee::Employee(int ages, int yearsOfServices, int salarys)
{
    age = ages;
    yearsOfService = yearsOfServices;
    salary = salarys;
}
 
Employee::~Employee() { }
 
int Employee::getAge() const
{
    return age;
}
 
int Employee::getYearsOfService() const 
{
    return yearsOfService;
 
}
 
int Employee::getSalary() const 
{
    return salary;
}
 
void Employee::setAge(int ag)
{
    age = ag;
}
 
void Employee::setYearsOfService(int year)
{
    yearsOfService = year;
}
 
void Employee::setSalary(int salar)
{
    salary = salar;
}
main.cpp:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include "Employee.h"
 
 
int main()
{
    Employee Liza(30,10,1000);
    int ages = Liza.getAge();
    int yearsOfWork = Liza.getYearsOfService();
    int salars = Liza.getSalary();
 
    std::cout << ages << yearsOfWork << salars << std::endl;
    
        Employee Simona; // конструктор по умолчанию
    Simona.setAge(50);
    Simona.setSalary(5000);
    Simona.setYearsOfService(1);
    std::cout << Simona.getAge() << Simona.getYearsOfService() << Simona.getSalary() << std::endl;
    std::cin.get();
    return 0;
}
Начал разбираться с классами. Возникла проблемка. Конструктор с параметрами - работает. Все хорошо. Добавил пустой - ошибки на этапе линковки, я так понимаю:
Код
1>------ Build started: Project: classes, Configuration: Debug Win32 ------
1>Compiling...
1>classes.cpp
1>Linking...
1>classes.obj : error LNK2001: unresolved external symbol "public: __thiscall Employee::Employee(void)" (??0Employee@@QAE@XZ)
1>C:\Documents and Settings\Администратор\Мои документы\Visual Studio 2008\Projects\classes\Debug\classes.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Documents and Settings\Администратор\Мои документы\Visual Studio 2008\Projects\classes\classes\Debug\BuildLog.htm"
1>classes - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Может, я что-то не так сделал?

На названия переменных не смотрите. Ночь не спал..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2011, 11:37     classes, конструкторы..
Посмотрите здесь:

C++ Visual C/C++ Classes
C++ Ошибка дружественной фунци: a managed type cannot have any friend functions/classes/interfaces
C++ конструкторы
Конструкторы C++
C++ push_back() and vector of classes
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
12.02.2011, 11:41     classes, конструкторы.. #2
В упор не вижу в Employee.cpp конструктора по-умолчанию. В заголовке есть, а тела нет.
papochka
 Аватар для papochka
32 / 32 / 2
Регистрация: 14.11.2009
Сообщений: 137
12.02.2011, 11:46  [ТС]     classes, конструкторы.. #3
Упс, простите...
Недочитал...
Просто, если не задавать конст. копирования, то и по умолчанию не указывается.. Вот я и запарился..
Спасибо!

Стоило добавить только в Employee.cpp
C++
1
Employee::Employee() {} ;
Поправьте, если я ошибаюсь..
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
12.02.2011, 11:47     classes, конструкторы.. #4
lemegeton, не вы один . Вот компилятор его тоже не видит, о чём чётко и говорит. Почему-то даже не совсем новички в упор не хотят читать столько полезные сообщения столь умной программы.
Yandex
Объявления
12.02.2011, 11:47     classes, конструкторы..
Ответ Создать тему
Опции темы

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