Строка в классе не называет тип - PullRequest
0 голосов
/ 03 ноября 2018

Сегодня я попытался создать класс с именем калькулятор для физического проекта, и, как следует из названия, мой класс просто делал вычисления. Будучи программой для физики, она требует формул исчисления; и они будут рассчитываться с использованием параметризованных функций, возвращая строку, состоящую из двойного числа и единицы измерения, например: 177 J/Kg*K

Теперь перейдем к проблеме:

Итак, я проверил свои функции, и после этого я решил превратить их в объектно-ориентированное программирование, так как это немного упростит мне задачу, по крайней мере ... После занятий я получил сообщение об ошибке:

"строка" в "Калькуляторе класса" не определяет тип

Вот код:

calculator.h

#ifndef CALCULATOR_H
#define CALCULATOR_H

#include <iostream>

using namespace std;

class Calculator{
private:

public:
    Calculator();
    string capCalorica(double cReceived, double varTemp);
    string caldSpecifica(double cReceived, double varTemp, double mass);
};

#endif // CALCULATOR_H

Calculator.cpp

#include "Calculator.h"
#include <iostream>
#include <string>
#include <windows.h>

using namespace std;

Calculator::Calculator(){
    cout<<"Calculus Module Initialized!"<<endl;
    Sleep(2000);
    system("cls");
}

Calculator::string capCalorica(double cReceived, double varTemp)){
    stringstream sstr;
    double result = cReceived/varTemp;

    sstr<<result<<" J/Kg";

    return sstr.str();
}

Calculator::string caldSpecific(double cReceived, double mass, double varTemp){
    stringstream sstm;
    double result = cReceived/(mass*varTemp);

    sstm<<result<<" J/Kg*K";

    return sstm.str();
}

Ошибка в файле cpp, где бы я ни определял строку, возвращающую функцию

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

изменение

Calculator::string capCalorica(double cReceived, double varTemp)){
...
}

до

std::string Calculator::capCalorica(double cReceived, double varTemp)){
...}

и т.д.

0 голосов
/ 03 ноября 2018

Ваше объявление string capCalorica(double cReceived, double varTemp); в заголовочном файле использует string в качестве типа, но этот тип на данный момент неизвестен. Вы просто забыли #include<string> в заголовочном файле.

...