1

我得到一个名为 Node.h 的头文件,定义为:

#ifndef NODE_H
#define NODE_H

#define MAX_RESISTORS_PER_NODE 5


class Node
{
private:

    int numRes; // number of resistors currently connected
    int resIDArray[MAX_RESISTORS_PER_NODE]; // stores the index of each resistor
    int *max_number_of_resistors;
    int *max_number_of_nodes;


public:
    Node();
   ~Node();
   // Updates resIDArray to show the resistor in position rIndex in
   // the resistor array is now connected to this node.
   // Returns true if successful
    bool addResistor (int rIndex);

   // prints the whole node
   // nodeIndex is the position of this node in the node array.
        void print (int nodeIndex);

};

#endif  /* NODE_H */

但是,没有为构造函数设置参数,那么如何将 max_number_of_resistors 初始化为另一个 cpp 文件获得的东西?我可以在这个名为 get_data(int node, int res) 的头文件和我的 Node.cpp 文件中创建一个新函数并执行此操作:

#include <Node.h>
get_data(int node, int res)
{
     max_number_of_resistors = new int[res];
     max_number_of_nodes = new int[node];

}

然后在我获取节点和资源数据的文件中,我可以做

int get_data(int x, int y)
{
    cin >> x;
    cin >> y;
    get_data(x,y);
}
4

1 回答 1

0

您是否尝试过初始化列表

Node()
: numRes(MAX_RESISTORS_PER_NODE)
{ ; }

您是否尝试过使用参数制作另一个构造函数?

Node (unsigned int maximum_resistors)
: numRes(maximum_resistors)
{ ; }

或者

Node (unsigned int maximum_resistors)
{
   numRes = maximum_resistors;
}
于 2013-10-13T17:17:24.763 回答