C++ C++;:另一个类中的类的实例
我有一个名为C++ C++;:另一个类中的类的实例,c++,class,oop,pointers,visual-c++,C++,Class,Oop,Pointers,Visual C++,我有一个名为Matrix的类和一个名为NeuralNet的类。 它们看起来像这样: 矩阵.h: class Matrix { public: double * matrix = nullptr; Matrix(int,int); }; #include "Matrix.h" Matrix::Matrix(int h,int w) { matrix = new double[h*w]; }; class NeuralNet { public: Matrix * ptr
Matrix
的类和一个名为NeuralNet
的类。
它们看起来像这样:
矩阵.h:
class Matrix
{
public:
double * matrix = nullptr;
Matrix(int,int);
};
#include "Matrix.h"
Matrix::Matrix(int h,int w)
{
matrix = new double[h*w];
};
class NeuralNet
{
public:
Matrix * ptr = nullptr;
NeuralNet(int,int);
}
#include "Matrix.h"
#include "NeuralNet.h"
NeuralNet::NeuralNet(int h,int w)
{
ptr = new Matrix(h,w);
}
矩阵.cpp:
class Matrix
{
public:
double * matrix = nullptr;
Matrix(int,int);
};
#include "Matrix.h"
Matrix::Matrix(int h,int w)
{
matrix = new double[h*w];
};
class NeuralNet
{
public:
Matrix * ptr = nullptr;
NeuralNet(int,int);
}
#include "Matrix.h"
#include "NeuralNet.h"
NeuralNet::NeuralNet(int h,int w)
{
ptr = new Matrix(h,w);
}
我的问题是:“如何在类NeuralNet
中使用该类的实例?”
我试过:
NeuralNet.h:
class Matrix
{
public:
double * matrix = nullptr;
Matrix(int,int);
};
#include "Matrix.h"
Matrix::Matrix(int h,int w)
{
matrix = new double[h*w];
};
class NeuralNet
{
public:
Matrix * ptr = nullptr;
NeuralNet(int,int);
}
#include "Matrix.h"
#include "NeuralNet.h"
NeuralNet::NeuralNet(int h,int w)
{
ptr = new Matrix(h,w);
}
NeuralNet.cpp:
class Matrix
{
public:
double * matrix = nullptr;
Matrix(int,int);
};
#include "Matrix.h"
Matrix::Matrix(int h,int w)
{
matrix = new double[h*w];
};
class NeuralNet
{
public:
Matrix * ptr = nullptr;
NeuralNet(int,int);
}
#include "Matrix.h"
#include "NeuralNet.h"
NeuralNet::NeuralNet(int h,int w)
{
ptr = new Matrix(h,w);
}
这不起作用,我得到一个错误:
任何形式的帮助都将不胜感激!
感谢您在NeuralNet.h中预先声明矩阵:
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] )
{
}
如果添加一个
在类NeuralNet
的}
之后,矩阵
应该是矩阵
刚才添加的分号完全没有任何作用,只是一个打字错误。为什么矩阵应该是矩阵?@AlessandroLegnani,因为C++区分大小写。