免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1482 | 回复: 3
打印 上一主题 下一主题

[C++] 继续问一个c++菜鸟问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-28 17:32 |只看该作者 |倒序浏览
// test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"

#include <cstdlib>
#include <fstream>
#include <utility>
#include <iostream>
#include <map>
#include <string>
#include <vector>
using namespace std;


struct Item
{
        string name;
        string cd;
   
        Item(const string& name,const string& cd)
        {
                this->name=name;
                this->cd=cd;
        }

        bool operator==( const Item& object)
        {
                return this->cd == object.cd;
        }

        bool operator<( const Item& object)
        {
                return this->cd < object.cd;
        }

        bool operator==( const Item& object)const
        {
                return this->cd == object.cd;
        }

        bool operator<( const Item& object)const
        {
                return this->cd < object.cd;
        }
};


struct Area
{
        string name;
        string cd;

        Area(const string& name,const string& cd)
        {
                this->name=name;
                this->cd=cd;
        }

        bool operator==( const Area& object)
        {
                return this->cd == object.cd;
        }

        bool operator<( const Area& object)
        {
                return this->cd < object.cd;
        }

        bool operator==( const Area& object)const
        {
                return this->cd == object.cd;
        }

        bool operator<( const Area& object)const
        {
                return this->cd < object.cd;
        }
};



void SetBase( vector<Item>& ItemData,vector<Area>& AreaData,ofstream&,ofstream&);

int _tmain(int argc, _TCHAR* argv[])
{
       
        //in Read fuction
        vector<Item> ItemData;
    vector<Area> AreaData;

        map< Item,int > ItemPosition;
    map< Area, vector<string> > ResultMap;
    map< Area, vector<int> > AreaFlag;
   
       


    ofstream fterm("TermInfo.csv");
        ofstream fhour("HourData.csv");
    ofstream fitem("ItemInfo.csv");
        ofstream fset("SetInfo.csv");

    if(!fterm || !fhour || !fitem || !fset)//I don't think should use exception
        {
                cerr<<"File open flase!"<<endl;
                exit(1);//maybe should return a value!
        }
   
    SetBase(ItemData,AreaData,fterm,fitem);
       


   

        fterm.close();
        fhour.close();
    fitem.close();
        fset.close();

        return 0;
}

void SetBase(vector<Item> ItemData,vector<Area> AreaData,ofstream& fterm,ofstream& fitem)
{
}



错误        1        error LNK2019: 无法解析的外部符号 "void __cdecl SetBase(class std::vector<struct Item,class std::allocator<struct Item> > &,class std::vector<struct Area,class std::allocator<struct Area> > &,class std::basic_ofstream<char,struct std::char_traits<char> > &,class std::basic_ofstream<char,struct std::char_traits<char> > &)" (?SetBase@@YAXAAV?$vector@UItem@@V?$allocator@UItem@@@std@@@std@@AAV?$vector@UArea@@V?$allocator@UArea@@@std@@@2@AAV?$basic_ofstream@DU?$char_traits@D@std@@@2@2@Z),该符号在函数 _wmain 中被引用        test.obj       



麻烦大家了

[ 本帖最后由 谢灵运 于 2007-6-28 17:33 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-06-28 17:51 |只看该作者
定义
void SetBase(vector<Item> ItemData,vector<Area> AreaData,ofstream& fterm,ofstream& fitem)
{
}
和声明
void SetBase( vector<Item>& ItemData,vector<Area>& AreaData,ofstream&,ofstream&);
一个是传值,一个是引用,不一致
:em06::em06:

[ 本帖最后由 duanjigang 于 2007-6-28 17:55 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-06-28 18:29 |只看该作者
太谢谢了,是我又马虎了

论坛徽章:
0
4 [报告]
发表于 2007-06-28 18:56 |只看该作者
函数声明跟定义放在一对H和CPP文件中单独进行编译成模块,这样容易发现疏忽的问题,而切生成函数时不妨采用VC的向导去添加,减少人为造成的出错
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP