设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1763|回复: 3
打印 上一主题 下一主题

类的麻烦问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 00:12:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//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;
}
2#
发表于 2009-11-4 00:12:14 | 只看该作者
不好意思,是你的函数名字有出路,仔细看看

multiply实现部分少了个t
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-4 00:12:15 | 只看该作者
话题之外的问题:

Vector a,s;
Matrix b;
s=multiply(b,s);
a.show();
你没有对a进行操作呀
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-4 00:12:17 | 只看该作者
谢谢了各位!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 22:54 , Processed in 0.094176 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表