При работе над довольно крупным проектом я заметил, что одна из моих функций, которая должна возвращать значение Long, либо возвращает Integer. Я воспроизвел ошибку в очень маленькой среде, думая, что это сделает проблему понятной для меня, но я все еще не вижу этой проблемы. Входной сигнал равен 1.123, а возвращаемое значение равно 1. Если я, например, вводю Long; 123.456, он вернется только 123. Что я не вижу?Функция C++ должна возвращать Long, возвращая значение Integer вместо
Source1.cpp
#ifndef HEADER_H
#define HEADER_H
using namespace std;
class testClass
{
private:
long m_testLong = 0.0;
public:
long getTestLong();
void setTestLong(long sn);
};
#endif
header.h
#include "Source1.cpp"
#include <string.h>
void testClass::setTestLong(long sn)
{
m_testLong = sn;
}
long testClass::getTestLong()
{
return m_testLong;
}
Source.cpp
#include <iostream>
#include "Source1.cpp"
#include "Header.h"
using namespace std;
int main(void)
{
testClass *myClass = new testClass;
cout << "Setting test long value using setTestLong function -- 1.123" << endl;
myClass->setTestLong(1.123);
long tempTestLong = 0.0;
tempTestLong = myClass->getTestLong();
cout << tempTestLong << endl;
system("Pause");
return 0;
}
ОК, так что ответ был болезненно прост. Раньше я не работал с длинными, но я думал, что знаю, кто они. Я этого не сделал.
Так долго и целые числа являются целыми числами, а тип, обозначенный как длинный, заставил меня предположить, что целое число не будет работать, и я проверил функцию с двойным из-за моего недоразумения. Спасибо за помощь!
Вы должны прочитать основную документацию на языке, который вы пытаетесь использовать: http://en.cppreference.com/w/cpp/language/types – ach
Да, я сделал быстрое предположение, что это неверно. В следующий раз, когда я нахожу ошибку, я прочитаю полную документацию на C++. – trueCamelType
никто не ожидает, что вы прочитаете полную документацию на C++, но то, о чем вы спрашиваете, это ABC. – ach