伙计们,我现在有点困惑,我试图将程序分为file.h file.cpp和main.cpp,这是我的代码示例:
//file.h//
class matrix
{
private:
class rcmatrix;
rcmatrix *data;
public:
class Cref;
class Size_Check{};
matrix();
~matrix();
matrix(const int rows, const int cols, const double num);
};
class rcmatrix
{
private:
rcmatrix(const rcmatrix&);
rcmatrix &operator =(const rcmatrix&);
public:
int rows;
int cols;
double **mat;
int n;
rcmatrix();
~rcmatrix();
};
//file.cpp
matrix::rcmatrix::rcmatrix()
{
rows=0;
cols=0;
mat=NULL;
n=1;
};
matrix::rcmatrix::rcmatrix(const int r, const int c, const double num)
{
//instructions.
};
我收到以下错误:
error: invalid use of incomplete type ‘class matrix::rcmatrix’
error: ‘class matrix::rcmatrix’ is private
error: expected unqualified-id before ‘const’
matrix::rcmatrix(const int r, const int c, const double num)
我知道它不会以这种方式工作,但是我尝试了许多其他解决方案,但没有结果,因此,感谢初学者使用c ++的任何技巧/建议。
最佳答案
在包含类之外声明嵌套类时,必须使用其全名class matrix::rcmatrix
。
否则,编译器认为您要声明另一个完全独立的类。