상당히 큰 프로젝트에서 작업하는 동안 Long 함수를 반환하는 함수 중 하나가 Integer를 반환한다는 것을 알게되었습니다. 아주 작은 환경에서 오류를 재현 해 나에게 문제를 명확하게 만들 것이라고 생각했지만 여전히 문제가 보이지 않습니다. 입력은 1.123이고 반환 값은 1입니다. 예를 들어 Long을 입력하면; 123.456, 123 만 반환합니다. 내가 무엇을 보지 않습니까?C++ 함수가 Long을 반환하고 대신 정수와 같은 값을 반환합니다.
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;
}
#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;
}
OK Source.cpp이므로 응답은 고통 간단. 나는 오래 전에 함께 일한 적이 없었지만 나는 그들이 무엇인지 알았다고 생각했다. 나는하지 않았다.
그래서 longs와 정수는 모두 정수이며 long으로 나열된 유형은 정수로 가정합니다. 오해로 인해 double로 함수를 테스트했습니다. 도와 주셔서 감사합니다!
사용하려는 언어에 대한 기본 설명서를 읽었어야합니다. http://en.cppreference.com/w/cpp/language/types – ach
그래, 나는 틀렸다고 빠른 가정을했습니다. 다음 번에 오류가있는 전체 C++ 설명서를 읽습니다. – trueCamelType
아무도 당신이 완전한 C++ 문서를 읽을 것을 기대하지는 않지만, 당신이 묻는 것은 ABC입니다. – ach