新微赢技术网

标题: 类的麻烦问题 [打印本页]

作者: 〢●●〢    时间: 2009-11-4 00:12
标题: 类的麻烦问题
//friends-h 头文件
//注意我取的名字---字面包含友元的含义,但其实整个程序中我并没有使用友元:
class Vector
{
private:
float V[5];
public:
float &elem(int i)
{
return V[i];
}
void show();
};
class Matrix
{
private :
float M[5][5];
public:
Matrix();
float &elem(int i,int j)
{
return M[i][j];
}
};

//friends-c CPP文件
//注意我取的名字---字面包含友元的含义,但其实整个程序中我并没有使用友元:

# include<iostream.h>
# include"friends-h.h"
//定义了一个外部全局函数。
Vector multiply(Matrix &m,Vector &v);
/*定义矩阵引用 向量引用
乘法(矩阵乘法)
返回vector类型值的函数 */
void main()
{
Vector a,s;
Matrix b;
s=multiply(b,s); //没有这句话程序可以正常的通过,正确运行
//但是一加上这句,则出现-------错误:我将错误复制在这里,请大家帮帮忙看究竟是怎么回事!
/*Compiling...
friends-c.cpp
Linking...
friends-c.obj : error LNK2001: unresolved external symbol "class Vector __cdecl multiply(class Matrix &,class Vector &)" (?multiply@@YA?AVVector@@AAVMatrix@@AAV1@@Z)
Debug/一个友元的例子.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.*/
a.show();
}
///////////////////////////////////////////////////
Matrix::Matrix()
{
int i,j;
float x=1;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
M[i][j]=x;
x++;
}
}
}
//////////////////////////////////////
Vector muliply(Matrix &m,Vector &v)//全局函数,实现两个矩阵的乘积!
{
Vector r;
for(int i=0; i<5;i++)
{
r.elem(i)=1;
for(int j=0;j<5;j++)
{
r.elem(i)=r.elem(i)+m.elem(i,j)*v.elem(j);
}
}
return r;
}
////////////////////////////////////////////
void Vector::show()
{
int i;
for(i=0;i<5;i++)
{
cout<<V[i]<<endl;
}
return;
}
作者: 我是哈密瓜耶    时间: 2009-11-4 00:12
不好意思,是你的函数名字有出路,仔细看看

multiply实现部分少了个t
作者: 哪里找    时间: 2009-11-4 00:12
话题之外的问题:

Vector a,s;
Matrix b;
s=multiply(b,s);
a.show();
你没有对a进行操作呀
作者: Iしovのyou    时间: 2009-11-4 00:12
谢谢了各位!




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2