【问题标题】:Returning a value inside a double struct C++在双结构 C++ 中返回一个值
【发布时间】:2015-04-07 02:45:13
【问题描述】:

我想从我的 Term 结构中返回学位。据我了解,我需要访问 Node->Term->Degree 但是我的函数不接受 Node 作为参数,那么我该如何处理呢?

//This function returns the degree for example
//a.degree returns degree
int Polynomial::degree() const{

}

struct Term{
   int coeff;
   int degree;
};
struct Node {
   Term *term;
   Node *next;
};

这些是我的结构。

Polynomial.cpp 如下(缩短):

using namespace std;
struct Term{
   int coeff;
   int degree;
};

struct Node {
   Term *term;
   Node *next;
};

int Polynomial::degree() const{

}

Polynomial.h 如下(缩短):

using namespace std;
Class Polynomial {
struct Term{
   int coeff;
   int degree;
};

struct Node {
   Term *term;
   Node *next;
};

public:
int degree() const;

private:
Node * poly;

【问题讨论】:

  • 你能提供你的多项式类的代码吗?
  • 您必须拥有一个 Node 对象作为该类的成员。您可以通过成员变量访问它。如果没有,您需要将其作为参数传递给函数。
  • 如果节点对象是类的成员,我将如何访问它?
  • 取决于它是如何定义的。邮政编码Polynomial
  • 请提供更多关于您的实施的细节。

标签: c++ struct nodes


【解决方案1】:

基本上你会做以下事情:

int Polynomial::degree() const{
    // Here add your code to check if the pointers are null and
    // implement your early return or exception handling strategy.
    // Below is how to get the degree value using Node type data member
    return poly->term->degree;
}

这只是使用 poly 获得学位的方法。在尝试访问该值之前,请不要忘记空值检查。

【讨论】:

  • 我只是注意到我的私人有一个 Node * poly,我用它来访问这些功能。谢谢!
  • 我在这里看不到任何支票。看我的回答,安全多了。如果你这样做,如果polypoly->termnullptr,你会得到错误的行为。
  • @MateuszGrzejek:他在问如何获得学位。当然这不是一个完整的代码,只是提醒他如何得到他需要的东西。空值检查等取决于他的编码,而不是这里的问题。原始问题已得到回答并被接受。处理那个:)
猜你喜欢
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多