c ++类成员返回奇数值

时间:2016-04-16 04:34:38

标签: c++ oop

我将首先说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。

关于为什么会发生这种情况以及如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:2)

尝试调用默认构造函数。它似乎正确初始化数据成员。您的参数化构造函数仅初始化books/search?author_id=1数据成员,而不是任何其他数据成员。