| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 453 人关注过本帖
标题:SOS:一个文件链接的问题(特邀版主和各位高手指点)
只看楼主 加入收藏
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
结帖率:89.66%
收藏
已结贴  问题点数:20 回复次数:2 
SOS:一个文件链接的问题(特邀版主和各位高手指点)
以下是我的代码,分三个文件,写在一个文件里头没有问题,但是分开就是无法正确链接。请指教。
程序代码:
//头文件 muban.h

#include <iostream>
#include<cstdlib>
using namespace std;

struct student
{
    int id;
    float gpa;
};


template <typename T>
class store
{
    T item;
    int havevalue;
public:
    store();

    T getelem(void);
    void putelem(T x);

};

//实现文件 muban.cpp

#include "muban.h"

template<class T>
T store<T>::getelem(void)
{
    if(havevalue==0)
    {
        cout<<"No item present!"<<endl;
        exit(1);
    }
    return item;

}


template<class T>
void store<T>::putelem(T x)
{
    havevalue++;
    item=x;

}

template<class T>
store<T>::store():havevalue(0)
{}


//主函数 main.cpp

#include "muban.h"
int main()
{
    student g={1000,23};
    store<int> s1,s2;
    store<student> s3;
    store<double> D;

    s1.putelem(3);
    s2.putelem(-7);
    cout<<s1.getelem()<<ends<<s2.getelem()<<endl;
    s3.putelem(g);
    cout<<"the student id is "<<s3.getelem().id<<endl;
    cout<<"retrieving object D  ";
    cout<<D.getelem()<<endl;
    system("pause");

}





 

[ 本帖最后由 南国利剑 于 2010-4-29 12:15 编辑 ]
搜索更多相关主题的帖子: SOS 版主 链接 文件 
2010-04-28 19:01
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:14 
C++模板的定义和声明 分为包含模式和分离模式
包含模式就是声明加定义在同一个文件
分离就是用export关键字加在定义前
export template<class T>
void store<T>::putelem(T x)
{
    havevalue++;
    item=x;

}分开后这样写 但不是所有的编译器都支持
2010-04-28 19:21
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
回复 2楼 hahayezhe
我试了,还是不行。export这个关键字已经作废了。
我用的是vc6.0的编译器

怎么办呢?


[ 本帖最后由 南国利剑 于 2010-4-29 12:18 编辑 ]

南国利剑
2010-04-29 12:14
快速回复:SOS:一个文件链接的问题(特邀版主和各位高手指点)
数据加载中...
 
   



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

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