| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4074 人关注过本帖
标题:作为空间如何更改?
只看楼主 加入收藏
夢梦
Rank: 1
来 自:福建
等 级:新手上路
帖 子:24
专家分:6
注 册:2015-5-7
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
作为空间如何更改?
程序代码:
//ElevatorClass.h
#include <iostream>
using namespace std;

//--------声明类 Elevator ------------
class Elevator
{
private:
    int CurrentFloor;
    void Move(int);
public:
    Elevator();       //缺省的构造函数
    Elevator(int);    //构造函数(可设置初值)
    ~Elevator();      //析构函数
    void Call(int);
    void Select(int);
    static int Count;   //static 变量
};

//---------- 设置 static 变量初始值 -----------
int Elevator::Count = 0;


//ElevvatorDef.cpp
Elevator::Elevator()    //定义构造函数
{
    cout << "构造函数被调用" << endl;
    CurrentFloor = 1;
    Count ++;
    return;
}

Elevator::Elevator(int N)   //定义构造函数(可设置初值)
{
    cout << "构造函数被调用" << endl;
    CurrentFloor = N;
    Count ++;
    return;
}

Elevator::~Elevator()    //定义析构函数
{
    cout << "析构函数被调用。" << endl;
    Count --;
    return;
}

void Elevator::Call(int N)   //定义成员函数 Call()
{
    Move(N);
    cout << "电梯到了,请进。\n";
    return;
}

//---------定义成员函数 Select() ----------
void Elevator::Select(int N)
{
    cout << "载您到 " << N << " 楼。\n";
    if(N > CurrentFloor)
        cout << "电梯向上。\n";
    else
        cout << "电梯向下。\n";
    Move(N);
    cout << "电梯已到 " << CurrentFloor << " 楼,谢谢观临。\n";
}

//--------- 定义 private 成员函数 Move() -----------
void Elevator::Move(int Target)
{
    cout << "电梯门要关了,请小心。" << endl;
    int Start = CurrentFloor;
    cout << "电梯目前在 " << CurrentFloor << " 楼。\n";
    if(Target >= CurrentFloor)
    {
        for(CurrentFloor = Start; CurrentFloor <= Target; CurrentFloor ++)
            cout << " 灯号:" << CurrentFloor << " 楼\n";
        CurrentFloor --;
    }
    else 
    {
        for(CurrentFloor = Start; CurrentFloor >= Target; CurrentFloor --)
            cout << " 灯号:" <<CurrentFloor << "" << endl;
        CurrentFloor ++;
    }
    cout << "电梯门要开了,请小心。" << endl;
    return;
}


//ElevatorMain.cpp
//-------------主程序-------------
int main()
{
    //-----(1)------
    cout << "(1)" << endl;
    Elevator A;        //定义电梯 A
    cout << "从 5 楼调用电梯:" << endl;
    A.Call(5);     //调用电梯 A
    A.Select(2);   //设置电梯到二楼
    cout << "目前 Count 的值是:" << A.Count << endl;

    //--------(2)---------
    cout << "(2)" << endl;
    Elevator B(3);   //定义电梯 B
    cout << "从 4 楼调用:" << endl;
    B.Call(4);      //调用电梯 B 
    B.Select(8);    //设置电梯 B 到八楼
    cout << "目前 Count 的值是:" << B.Count << endl;
    return 0;
}

这段程序如果合在一起作为.cpp的文件就可以运行,但是如果以一下//ElevatorClass.h //ElevatorMain.cpp //ElevatorMain.cpp 文件建立一个空间会出现以下错误:
 Linking...
 ElevatorMain.obj : error LNK2005: "public: static int Elevator::Count"    (?Count@Elevator@@2HA) already defined in ElevatorDef.obj
 Debug/电梯.exe : fatal error LNK1169: one or more multiply defined   symbols found
 执行 link.exe 时出错.


求解????
 电梯.exe - 1 error(s), 0 warning(s)
搜索更多相关主题的帖子: 如何 空间 include 
2016-04-04 01:14
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:20 
程序代码:
#ifndef ELEVVATORDEF_H_
#define ELEVVATORDEF_H_

#include <iostream>
using namespace std;

//--------声明类 Elevator ------------
class Elevator
{
private:
    int CurrentFloor;
    void Move(int);
public:
    Elevator();       //缺省的构造函数
    Elevator(int);    //构造函数(可设置初值)
    ~Elevator();      //析构函数
    void Call(int);
    void Select(int);
    static int Count;   //static 变量
};

#endif

程序代码:
#include <iostream>
#include "ElevvatorDef.h"

//---------- 设置 static 变量初始值 -----------
int Elevator::Count = 0;
//ElevvatorDef.cpp
Elevator::Elevator()    //定义构造函数
{
    cout << "构造函数被调用" << endl;
    CurrentFloor = 1;
    Count ++;
    return;
}

Elevator::Elevator(int N)   //定义构造函数(可设置初值)
{
    cout << "构造函数被调用" << endl;
    CurrentFloor = N;
    Count ++;
    return;
}

Elevator::~Elevator()    //定义析构函数
{
    cout << "析构函数被调用。" << endl;
    Count --;
    return;
}

void Elevator::Call(int N)   //定义成员函数 Call()
{
    Move(N);
    cout << "电梯到了,请进。\n";
    return;
}

//---------定义成员函数 Select() ----------
void Elevator::Select(int N)
{
    cout << "载您到 " << N << " 楼。\n";
    if(N > CurrentFloor)
        cout << "电梯向上。\n";
    else
        cout << "电梯向下。\n";
    Move(N);
    cout << "电梯已到 " << CurrentFloor << " 楼,谢谢观临。\n";
}

//--------- 定义 private 成员函数 Move() -----------
void Elevator::Move(int Target)
{
    cout << "电梯门要关了,请小心。" << endl;
    int Start = CurrentFloor;
    cout << "电梯目前在 " << CurrentFloor << " 楼。\n";
    if(Target >= CurrentFloor)
    {
        for(CurrentFloor = Start; CurrentFloor <= Target; CurrentFloor ++)
            cout << " 灯号:" << CurrentFloor << " 楼\n";
        CurrentFloor --;
    }
    else
    {
        for(CurrentFloor = Start; CurrentFloor >= Target; CurrentFloor --)
            cout << " 灯号:" <<CurrentFloor << "" << endl;
        CurrentFloor ++;
    }
    cout << "电梯门要开了,请小心。" << endl;
    return;
}

程序代码:
#include <iostream>
#include "ElevvatorDef.h"

//ElevatorMain.cpp
//-------------主程序-------------
int main()
{
    //-----(1)------
    cout << "(1)" << endl;
    Elevator A;        //定义电梯 A
    cout << "从 5 楼调用电梯:" << endl;
    A.Call(5);     //调用电梯 A
    A.Select(2);   //设置电梯到二楼
    cout << "目前 Count 的值是:" << A.Count << endl;

    //--------(2)---------
    cout << "(2)" << endl;
    Elevator B(3);   //定义电梯 B
    cout << "从 4 楼调用:" << endl;
    B.Call(4);      //调用电梯 B
    B.Select(8);    //设置电梯 B 到八楼
    cout << "目前 Count 的值是:" << B.Count << endl;
    return 0;
}
temp.zip (1.94 KB)





2016-04-04 02:58
夢梦
Rank: 1
来 自:福建
等 级:新手上路
帖 子:24
专家分:6
注 册:2015-5-7
收藏
得分:0 
谢啦,已经可以了,啦啦啦啦

新手……哦哦哦哦
2016-04-04 13:32
快速回复:作为空间如何更改?
数据加载中...
 
   



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

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