在處理一個相當大的項目時,我碰巧注意到我應該返回一個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;
}
OK,所以答案是痛苦簡單。我之前沒有多久就工作過,但我認爲我知道他們是什麼。我沒有。
因此,長整數和整數都是整數,並且只要列出長整型就可以讓我假設一個整數不起作用,並且由於我的誤解,我使用double來測試函數。謝謝您的幫助!
您應該閱讀關於您嘗試使用的語言的基本文檔:http://en.cppreference.com/w/cpp/language/types – ach 2014-09-24 04:08:01
是的,我做了一個快速假設,這是不正確的。我會在下次發現錯誤時閱讀完整的C++文檔。 – trueCamelType 2014-09-24 04:09:30
沒人希望你閱讀完整的C++文檔,但你所問的是ABC。 – ach 2014-09-24 05:58:43