我将首先说c ++是我的第一种编程语言,而且我是最初的初学者。我相信这有一些明显的答案。
但由于某种原因,这个带有单个自定义类的简单程序从Get函数返回非常奇怪的值,这些函数调用一个自定义类的私有成员。
程序分为三个文件,如下所示。
#include <iostream>
#include <cmath>
#include <string>
#include <cctype>
#include "Shapes.h"
using namespace std;
int main ()
{
double test=20.0;
Cube D(test);
cout<< D.GetSA()<<endl<<D.GetSide();
return 0;
}
然后作为名为Shapes.h
#include <iostream>
#include <cmath>
#include <string>
#include <cctype>
using namespace std;
class Cube
{
public:
Cube();
Cube(double);
double GetSA() const;
double GetSide() const;
private:
double SA;
double V;
double Side;
};
另一个名为Shapes.cpp
的文件包含构造函数。
#include <iostream>
#include <cmath>
#include <string>
#include <cctype>
#include "Shapes.h"
Cube::Cube()
{
V=0.0;
SA=0.0;
Side=0.0
}
Cube::Cube(double Side2)
{
Side=Side2;
}
double Cube::GetSA() const
{
return SA;
}
double Cube::GetSide() const
{
return Side;
}
由于某种原因,当运行此程序时,它为6.95293e-310
访问器函数返回GetSA
的值,并为副函数返回值200。
关于为什么会发生这种情况以及如何解决这个问题的任何想法?
答案 0 :(得分:2)
尝试调用默认构造函数。它似乎正确初始化数据成员。您的参数化构造函数仅初始化books/search?author_id=1
数据成员,而不是任何其他数据成员。