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

问题描述 投票:-3回答:1

我有一个名为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'*'

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

c++ class oop pointers visual-c++
1个回答
-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] )
{
}
© www.soinside.com 2019 - 2024. All rights reserved.