Class内部函数定义的问题
Matrix.h文件如下
#include <vector>
#include <iostream>
using namespace std;
class Matrix
{
public:
Matrix ();
Matrix (float a[16]);
void print (const Matrix &mat);
private:
vector <float> vec;
};
Matrix::Matrix ()
{
for (int i=0;i <16;i++)
{
vec[i]=0;
}
}
Matrix::Matrix(float a [16])
{
for (int i=0;i <16;i++)
{
vec[i]=a[i];
}
}
void Matrix::print(const Matrix &mat)
{
for (int i=0;i <16;i++)
{
cout < <vec[i] < < ' ';
}
cout < <endl;
}
源文件如下
#include <iostream>
#include <vector>
#include "Matrix.h "
using namespace std;
class Matrix;
void main()
{
float b[16]={0};
const Matrix a(b);
print (a);
}
结果编译错误如下:
c:\program files\microsoft visual studio\myprojects\practice\1.cpp(11) : error C2065: 'print ' : undeclared identifier
我是一个C++ 的初学者,希望大家能帮帮忙!谢谢了!
[解决办法]
楼主有些基本问题还没有弄懂。
在类中,调用成员函数时要利用对象和“.”。本例中应该使用a.print()
如果用指向对象的指针来调用其成员函数要用“-> “。
另外觉得楼主的print函数好象有些问题。
[解决办法]
#include <vector>
#include <iostream>
using namespace std;
class Matrix
{
public:
Matrix ();
Matrix (float a[16]);
void print ();
private:
vector <float> vec;
};
Matrix::Matrix ()
{
for (int i=0;i <16;i++)
{
vec[i]=0;
}
}
Matrix::Matrix(float a [16])
{
for (int i=0;i <16;i++)
{
vec[i]=a[i];
}
}
void Matrix::print()
{
for (int i=0;i <16;i++)
{
cout < <vec[i] < < ' ';
}
cout < <endl;
}
源文件如下
#include <iostream>
#include <vector>
#include "Matrix.h "
using namespace std;
class Matrix;
void main()
{
float b[16]={0};
const Matrix a(b);
a.print();///////////////////////
}