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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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'*'

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

答案

在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] )
{
}

以上是关于C ++:另一个类中的类实例的主要内容,如果未能解决你的问题,请参考以下文章

在目标 C 中引用另一个类中的实例化对象

C ++:如何访问另一个类中的类函数?

同一线程中类的所有实例中的类的共享数据成员

目标 C:我如何访问在我的 AppDelegate 中的另一个类中声明的类?

c ++如何获取指向另一个类中的当前对象的指针?

c++如何直接调用自己写的类中的函数,就像调用标准库中的函数那样