【发布时间】:2014-09-24 03:51:46
【问题描述】:
在处理一个相当大的项目时,我碰巧注意到我的一个应该返回 Long 值的函数要么返回 Integer。我在一个非常小的环境中重现了该错误,认为这会使我清楚问题,但我仍然没有看到问题。输入为1.123,返回值为1。如果我输入任何Long,例如; 123.456,它只会返回 123。我没看到什么?
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
头文件.h
#include "Source1.cpp"
#include <string.h>
void testClass::setTestLong(long sn)
{
m_testLong = sn;
}
long testClass::getTestLong()
{
return m_testLong;
}
来源.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;
}
好的,所以答案非常简单。我以前没有和 longs 合作过,但我想我知道它们是什么。我没有。
所以 long 和整数都是整数,并且将类型列为 long 让我假设整数不起作用,由于我的误解,我用 double 测试了该函数。感谢您的帮助!
【问题讨论】:
-
您应该已阅读有关您尝试使用的语言的基本文档:en.cppreference.com/w/cpp/language/types
-
是的,我做了一个不正确的快速假设。下次发现错误时,我会阅读完整的 C++ 文档。
-
没有人希望您阅读完整的 C++ 文档,但您要问的是 ABC。
标签: c++ pointers integer long-integer