这是我的代码
的main.cpp
#include <iostream>
#include "header.h"
#include "source.cpp"
using namespace std;
int main()
{
cout << "Hello world!" << endl;
int testarray[]={1,3,5,7};
mymatrix* first=new mymatrix(testarray,2,2);
return 0;
}
和header.h
using namespace std;
#include <iostream>
#include <string>
class mymatrix{
public:
int i;
int j;
int marray[];
mymatrix(int m[],int rows,int cols ) : marray(m),i(rows),j(cols)
{
cout<<"this is for testings ";
}
mymatrix()
{};
~mymatrix(){
// delete[] marray;
};
};
我收到此错误:无效使用非静态数据成员mymatrix :: i
我想做的就是成为我的对象 矩阵类并传递数组
答案 0 :(得分:0)
从
转换它int marray[];
到
int *marray;
此外,要么使用C范例,要么使用C ++而不是混合。
而不是
mymatrix* first=new mymatrix(testarray,2,2);
使用
mymatrix first(testarray,2,2);
让编译器分配和释放内存而不是你。
如果您对所使用的C ++库没有限制,请考虑使用std::vector
库来管理动态数组。
管理对象内存的Instad,专门在构造函数和析构函数内部管理它。