在C ++中使用Header和Cpp文件中的类

时间:2013-10-13 17:04:30

标签: c++

我得到一个名为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];

}

然后在我得到node和res数据的文件中,我可以做到

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

1 个答案:

答案 0 :(得分:0)

您是否尝试过初始化列表

Node()
: numRes(MAX_RESISTORS_PER_NODE)
{ ; }

您是否尝试使用参数创建另一个构造函数?

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

或者

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