C ++:另一个类中的类实例

时间:2017-12-22 18:24:47

标签: c++ class oop pointers visual-c++

我有一个名为Matrix的类和一个名为NeuralNet的类。 它们看起来像这样:

Matrix.h

class Matrix
{
  public:
  double * matrix = nullptr;
  Matrix(int,int);
};

Matrix.cpp

#include "Matrix.h"
Matrix::Matrix(int h,int w)
{
  matrix = new double[h*w];
};

我的问题是:"如何在课程NeuralNet中使用此课程的实例?" 我试过了:

NeuralNet.h

class NeuralNet
{
  public:
  Matrix * ptr = nullptr;
  NeuralNet(int,int);
}

NeuralNet.cpp

#include "Matrix.h"
#include "NeuralNet.h"
NeuralNet::NeuralNet(int h,int w)
{
  ptr = new Matrix(h,w);
}

这不起作用,我收到错误:

  Missing ';' before n'*'

任何类型的帮助将不胜感激! 感谢

1 个答案:

答案 0 :(得分:-1)

在NeuralNet.h中,您需要预先声明Matrix:

class Matrix;

或包含它:

#include "Matrix.h"

另外,在Matrix.cpp中,

Matrix::Matrix(int h,int w)
{
   Matrix = new double[h*w];
}

应该是

Matrix::Matrix(int h,int w) :
   matrix( new double[h*w] )
{
}