读书人

Class内部函数定义的有关问题

发布时间: 2012-03-07 09:13:51 作者: rapoo

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();///////////////////////
}

读书人网 >C++

热点推荐