标题:这个错误怎么改啊?帮帮忙啊,各位!
只看楼主
wei1987
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-12-11
 问题点数:0 回复次数:5 
这个错误怎么改啊?帮帮忙啊,各位!
#define N 20
class student
{
private:char name[20];
        float score;
public:
    student();
    void display();
    float Get();

};
template<class T>
class array
{
private:T s[N];
public:T GetArray(T *p);
    void set();
       float GetAverage();

};


#include"student.h"
#include<iostream>
using namespace std;
student::student()
{
    cout<<"请输入学生的姓名:"<<endl;
    cin>>name;
    cout<<"请输入学生的成绩:"<<endl;
    cin>>score;
}
float student::Get()
{
    return score;
}
void student::display()
{
    cout<<"姓名:"<<name<<"  成绩:"<<score<<endl;
}
template<class T>
T array<T>::GetArray(T *p)
{
    for(int i=0;i<N;i++)
    {
        &array[i]=p;
    }
    return s[i].Get();
}

template<class T>
float array<T>::GetAverage()
{
    float sum=0;
    for(int i=0;i<N;i++)
    {
        sum+=s[i].Get();
    }
    return sum/N;
}



#include"student.h"
#include<iostream>
#include<cmath>
using namespace std;
#define N 20
int main()
{
    student a[N];
    array<student> b;
    b.GetArray(a);
    cout<<b.GetAverage()<<endl;
}



-------------------Configuration: student - Win32 Debug--------------------
Linking...
test.obj : error LNK2001: unresolved external symbol "public: float __thiscall array<class student>::GetAverage(void)" (?GetAverage@?$array@Vstudent@@@@QAEMXZ)
test.obj : error LNK2001: unresolved external symbol "public: class student __thiscall array<class student>::GetArray(class student *)" (?GetArray@?$array@Vstudent@@@@QAE?AVstudent@@PAV2@@Z)
Debug/student.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

student.exe - 3 error(s), 0 warning(s)
搜索更多相关主题的帖子: private display include public return 
2007-12-12 23:14
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
得分:0 
不只是模板类实现地方的问题,实现的时候也有部分问题,我给你改了一下

student.h:

#define N 20
class student
{
private:char name[20];
        float score;
public:
    student();
    void display();
    float Get();

};
template<class T>
class array
{
private:
    T s[N];
public:
    float GetArray(T *p);
    void set();
    float GetAverage();

};

template<class T>
float array<T>::GetArray(T *p)
{
    for(int i=0;i<N;i++)
    {
        s[i]=*p;
    }
    return s[i].Get();
}

template<class T>
float array<T>::GetAverage()
{
    float sum=0;
    for(int i=0;i<N;i++)
    {
        sum+=s[i].Get();
    }
    return sum/N;
}


student.cpp:

#include"student.h"
#include<iostream>
using namespace std;

student::student()
{
    cout<<"请输入学生的姓名:"<<endl;
    cin>>name;
    cout<<"请输入学生的成绩:"<<endl;
    cin>>score;
}
float student::Get()
{
    return score;
}
void student::display()
{
    cout<<"姓名:"<<name<<"  成绩:"<<score<<endl;
}


main.cpp:

#include"student.h"
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
    student a[N];
    array<student> b;
    b.GetArray(a);
    cout<<b.GetAverage()<<endl;
    return 0;
}

雁无留踪之意,水无取影之心
2007-12-13 16:51
wei1987
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-12-11
得分:0 
还是那个错误啊
2007-12-13 22:29
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
得分:0 
你什么编译器啊,是VC++ 6.0不,你要按我的来,哪个文件放什么,不要只是改你的文件,程序代码改了,代码所在的文件位置也改了

雁无留踪之意,水无取影之心
2007-12-14 10:12
wei1987
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-12-11
得分:0 
调试之后没有我要的结果啊
2007-12-17 21:03
unicafree
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-1-11
得分:0 
#include <iostream>
using namespace std;
class student{
public:
       student();
       void display();
       float get();
private:
        char name[20];
        float score;
};

student::student()
{
    cout<<"please input student name:";
    cin>>name;
    cout<<"pleasa input student score:";
    cin>>score;
}
float student::get()
{
      return score;
}
void student::display()
{
     cout<<"name:"<<name<<"score:"<<score<<endl;
}

class array{
public:
      
       array();
       float getaverage();
private:
        student s[4];
        };
array::array()
{
 }

float array::getaverage()
{
    float sum=0.0,average=0.0;               
    for(int i=0;i<5;i++)
    sum+=s[i].get();
    average=sum/5;
    return average;
}
int main()
{
    array b;
    cout<<b.getaverage();
    return 0;
}
不知道你的意思,你不要用模板啊,直接象我上面的程序,
就是计算出一个班人的平均成绩,是吗?
2007-12-18 21:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-192145-1-1.html




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

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