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

не могу найти ошибку линковщика - C++

Восстановить пароль Регистрация
 
h_wolf
 Аватар для h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 211
31.01.2014, 14:11     не могу найти ошибку линковщика #1
stack.h:
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef stack_h_
#define stack_h_
#include <iostream>
#include "Bank_dep.h"
typedef deposite Item;
 
class Stack {
private:
    static const int MAX=10;
    int top;
    Item stack[MAX];
public:
    Stack();
    void push(const Item &);
    void pop(Item &);
    bool is_empty() const {return top==0;}
    bool is_full() const {return top==MAX;}
};
#endif

bank_dep.h
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef bank_dep_h_
#define bank_dep_h_
#include <string>
 
class deposite {
private:
    std::string number;
    std::string name_holder;
    std::string valid;
    long int balance;
public:
    void wdraw(const long int sum){balance-=sum;}
    void toping(const long int sum){balance+=sum;}
    void show() const;
    void transfer(deposite &, long int);
    bool enough(long int trans){ return trans<balance;}
    deposite(std::string nu="0000 0000 0000 0000", 
             std::string nam="default name",
             std::string vali="01/01/2015", 
                long int bal=0);
};
#endif

Stack.cpp
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "Stack.h"
 
void Stack::push(const Item & item)
{
    if(!is_empty())
        stack[top++]=item;
    else 
        std::cout<<"Stack is full! \n";
}
 
void Stack::pop(Item & item)
{
    if(!is_empty())
        item=stack[--top];
    else
        std::cout<<"Stack if empty! \n";
}
 
Stack::Stack()
{
    top=0;
}

bank_dep.cpp
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "Stack.h"
#include "Bank_dep.h"
 
void deposite::show() const
{
    std::cout<<"Number: "<<number<<"\n"
        <<"Name holder: "<<name_holder<<"\n"
         <<"Valid Date:"<<valid<<"\n"
         <<"Current balance:"<<balance<<"\n";
}
void deposite::transfer(deposite & dep_rec, long int sum)
{
    if(enough(sum))
    {
        balance-=sum;
        dep_rec.balance+=sum;
        std::cout<<"Transaction has complete! \nCurrent balance: "<<balance<<"\n";
    }
    else
        std::cout<<"You have't enough money. \nTransaction has aborted.\n";
}

main.cpp
Кликните здесь для просмотра всего текста
main.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
#include "Stack.h"
#include "Bank_dep.h"
int main()
{
    Stack st=Stack();
    deposite first=deposite("1111 2222 3333 4444 5555", 
                            "Alex Pirce", 
                            "02/12/2016", 
                            25000);
    st.push(first);
    deposite two=deposite();
    st.push(two);
    first.show();
    two.show();
    first.transfer(two, 10000);
    first.show();
    two.show();
    two.wdraw(5000);
    first.toping(25000);
    first.show();
    two.show();
    getchar();
    return 0;
}


При попытке скомпилировать в VS2k12 получаю следующие ошибки:

1>------ Build started: Project: Part10-01, Configuration: Debug Win32 ------
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall deposite::deposite(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,long)" (??0deposite@@QAE@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@00J@Z) referenced in function _main
1>Stack.obj : error LNK2001: unresolved external symbol "public: __thiscall deposite::deposite(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,long)" (??0deposite@@QAE@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@00J@Z)
1>F:\lessons\Prata\VS12Prof\Part10-01\Debug\Part10-01.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Все файлы в проект добавлены, точка входа Console, то что гуглится не помогает, видимо где-то ошибка в коде.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2014, 14:11     не могу найти ошибку линковщика
Посмотрите здесь:

C++ Не могу найти ошибку
Не могу найти ошибку C++
C++ Не могу найти ошибку(
C++ Не могу найти ошибку
Не могу найти ошибку C++
Не могу найти ошибку C++
Не могу найти ошибку C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
31.01.2014, 16:24     не могу найти ошибку линковщика #2
Цитата Сообщение от h_wolf Посмотреть сообщение
C++
1
deposite(std::string nu="0000 0000 0000 0000", std::string nam="default name", std::string vali="01/01/2015", long int bal=0);
все просто - реализации нет в cpp
Yandex
Объявления
31.01.2014, 16:24     не могу найти ошибку линковщика
Ответ Создать тему
Опции темы

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