| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 540 人关注过本帖
标题:类的麻烦问题
只看楼主 加入收藏
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
 问题点数:0 回复次数:4 
类的麻烦问题

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

[此贴子已经被作者于2006-9-27 9:59:53编辑过]

搜索更多相关主题的帖子: 麻烦 
2006-09-27 09:59
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

不好意思,是你的函数名字有出路,仔细看看


multiply实现部分少了个t

[此贴子已经被作者于2006-9-27 12:45:55编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-09-27 10:30
wyg_616
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-9-24
收藏
得分:0 
话题之外的问题:

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

胸有成竹,而面如平湖这可拜上将军
2006-09-27 12:46
朦朦胧胧
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-9-19
收藏
得分:0 

请看你程序里的这行:

//定义了一个外部全局函数。
Vector multiply(Matrix &m,Vector &v);

再看这行:
//////////////////////////////////////
Vector muliply(Matrix &m,Vector &v)//全局函数,实现两个矩阵的乘积!
{

看到了吗?


2006-09-27 13:12
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 
谢谢了各位!
2006-09-27 15:32
快速回复:类的麻烦问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021932 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved