首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-07 
Class内部函数定义的问题Matrix.h文件如下#includevector#includeiostreamusingnamespacestdclassMat

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

热点排行