Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
#1

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

31.01.2014, 14:11. Просмотров 205. Ответов 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, то что гуглится не помогает, видимо где-то ошибка в коде.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2014, 14:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не могу найти ошибку линковщика (C++):

Исправить ошибку линковщика, возникающую при применении шаблонов - C++
Добрый вечер. С применением шаблонов не могу собрать код.Высвечивается ошибка линковщика. Может кто-нибудь подсказать,в чем дело? ...

Найти слова, повторяющиеся более одного раза, не могу найти ошибку - C++
#include &lt;iostream&gt; using namespace std; void obr1(char **s, char **mas, int n, int m) { int i; int k; char *tm; for(i...

Массивы. Посчитать количество положительных, найти минимальное, удалить строку с минимальным (Не могу найти ошибку) - C++
// Заданы матрицы X(8;4),Y(5;5),Z(6;9). // Для каждой из матриц определить строку, в которой находится наименьшее // количество...

Не могу найти ошибку. - C++
народпомогите 1-й масив счтитае а второй нет, не могу найти ошибку #include &quot;stdafx.h&quot; ...

Не могу найти ошибку - C++
Здравствуйте, есть задача: Написать программу которая по введенному числу и месяцу рассчитывает день недели и выводит ответ на экран....

Не могу найти ошибку! - C++
Вобщем вот программа. #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;iomanip.h&gt; #include &lt;conio.h&gt; int main () { ...

1
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
Завершенные тесты: 1
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
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2014, 16:24
Привет! Вот еще темы с ответами:

Не могу найти ошибку - C++
Доброго времени суток, вообщем такое задание: В одномерном массиве,состоящем из n вещественных элементов вычислить: 1. Произведение...

Не могу найти ошибку - C++
Сумму элементов последовательности, расположенных между первым и вторым положительными элементами. При помощи итераторов. Если нету...

Не могу найти ошибку - C++
Как правильно сделать через рекурсию?

Не могу найти ошибку - C++
Компилятор выдает такую ошибку: fatal error C1075: конец файла обнаружен ранее, чем левая фигурная скобка &quot;{&quot; в...


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

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

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