C ++ Отдельная ошибка компиляции - PullRequest
0 голосов
/ 03 июня 2018

У меня есть этот код, который работает, но я не могу заставить работать как отдельные файлы.Я получаю ошибки:
ошибка C3861: «Сохранение»: идентификатор не найден и Ошибка C3861: «SmartSaving»: идентификатор не найден .

ЕстьЕсть еще 2 файла Account.h и Account.cpp, но я не думаю, что они являются проблемой.

#include <iostream>
#include <string>
#include <vector>
#include <iomanip>
#include "Account.h"
using namespace std;

int main() {
int n;
cin >> n;

vector<Account> accounts(n);

string type, id;
double amount, percent;

for (int i = 0; i < n; i++) {
    cin >> type >> id >> amount >> percent;
    if (type == "c")
        accounts[i] = Account(id, amount, percent);
    else if (type == "s")
        accounts[i] = Saving(id, amount, percent);
    else if (type == "ss")
        accounts[i] = SmartSaving(id, amount, percent);
}

string t;
int idx;
double sum;

cout << fixed << setprecision(2);

while (cin >> t) {
    if (t == "w") {
        cin >> idx >> sum;
        accounts[idx - 1].withdraw(sum);
    }
    else if (t == "d") {
        cin >> idx >> sum;
        accounts[idx - 1].deposit(sum);
    }
    else if (t == "b") {
        cin >> idx;
        cout << accounts[idx - 1].getAmount() << endl;
    }
    else if (t == "p") {
        for (int i = 0; i < n; i++)
            accounts[i].tick();
    }
}
system("pause");
}

Saving.h

#pragma once
#ifndef _SAVING_H
#define _SAVING_H
#include "Account.h"
#include <string>

class Saving : public Account {
public:
    Saving();
    Saving(std::string, double, double);
};
#endif

Saving.cpp

#include "Saving.h"
#include <string>

Saving::Saving(std::string id, double amount, double percent)
    : Account(id, amount, percent) {}

SmartSaving.h

#pragma once
#ifndef _SMARTSAVING_H
#define _SMARTSAVING_H
#include "Account.h"
#include <string>

class SmartSaving : public Account {
public:
    SmartSaving() {};
    SmartSaving(std::string id, double amount, double percent);
};
#endif

SmartSaving.cpp

#include "SmartSaving.h"
#include <string>

SmartSaving::SmartSaving(std::string id, double amount, double percent)
    : Account(id, amount, percent) {}

1 Ответ

0 голосов
/ 03 июня 2018

Вы используете Saving и SmartSaving в своей функции main (), тогда как я не вижу ни предварительных деклараций, ни включения "Saving.h" и "SmartSaving.h".

Вам это нужно, если только некоторыемагия в Account.h, которую вы нам не показывали :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...