| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 794 人关注过本帖
标题:各位大佬帮忙看一下实在找不出哪错 栈的存储与操作
只看楼主 加入收藏
七月与安生鉴
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2021-5-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
各位大佬帮忙看一下实在找不出哪错 栈的存储与操作

SeqStack.h
#ifndef SeqStack_H
#define SeqStack_H
const int StackSize = 10;
class SeqStack
{
public:
     SeqStack();
    ~SeqStack(){}
    void Push(int x);
    int Pop();
    int GetTop();
    int Empty();
private:
    int data[StackSize];
    int top;
};
#endif
SeqStack.cpp
#include"SeqStack.h"
//初始化顺序栈
SeqStack::SeqStack(){
    top = -1;
}
//数据元素入栈
void SeqStack:: Push(int x)
{
    top++;
    data[top] = x;
}
//数据元素出栈
int SeqStack:: Pop(){
    int x = data[top--];
    return x;
}
//读栈顶元素
int SeqStack::GetTop()
{
    if (top != -1)
        return data[top];
}
//判定栈空/满操作
int SeqStack::Empty()
{
    if (top == -1)return 1;
    else return 0;
}

main.cpp
#include"SeqStack.cpp"
#include<iostream>
using namespace std;
void main()
{
    SeqStack S;
    if (S.Empty())
        cout << "栈为空" << endl;
    else
        cout << "栈非空" << endl;
    cout << "对15和10执行入栈操作" << endl;
    S.Push(15);
    S.Push(10);
    cout << "栈顶元素为;" << endl;
    cout << S.GetTop() << endl;
    cout << "执行一次出栈操作" << endl;
    S.Pop();
    cout << "栈顶元素为:" << endl;
    cout << S.GetTop() << endl;
    system("pause");
}

这是报的错误
错误    6    error LNK1169: 找到一个或多个多重定义的符号    G:\新建文件夹\Project2\x64\Debug\栈的储存于操作.exe    1    1    栈的储存于操作
错误    1    error LNK2005: "public: __cdecl SeqStack::SeqStack(void)" (??0SeqStack@@QEAA@XZ) 已经在 main.obj 中定义    G:\新建文件夹\Project2\Project2\SeqStack.obj    栈的储存于操作
错误    5    error LNK2005: "public: int __cdecl SeqStack::Empty(void)" (?Empty@SeqStack@@QEAAHXZ) 已经在 main.obj 中定义    G:\新建文件夹\Project2\Project2\SeqStack.obj    栈的储存于操作
错误    4    error LNK2005: "public: int __cdecl SeqStack::GetTop(void)" (?GetTop@SeqStack@@QEAAHXZ) 已经在 main.obj 中定义    G:\新建文件夹\Project2\Project2\SeqStack.obj    栈的储存于操作
错误    3    error LNK2005: "public: int __cdecl SeqStack::Pop(void)" (?Pop@SeqStack@@QEAAHXZ) 已经在 main.obj 中定义    G:\新建文件夹\Project2\Project2\SeqStack.obj    栈的储存于操作
错误    2    error LNK2005: "public: void __cdecl SeqStack::Push(int)" (?Push@SeqStack@@QEAAXH@Z) 已经在 main.obj 中定义    G:\新建文件夹\Project2\Project2\SeqStack.obj    栈的储存于操作


但我把这三个文件放在一个cpp里就不会报错



[此贴子已经被作者于2021-12-11 16:39编辑过]

搜索更多相关主题的帖子: int 操作 obj  void 
2021-12-11 15:24
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:20 
#include"SeqStack.cpp"

你把这处改掉试试
2021-12-11 16:39
七月与安生鉴
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2021-5-23
收藏
得分:0 
回复 2楼 rjsp
对了十分感谢
这错误过于傻了
2021-12-11 16:50
快速回复:各位大佬帮忙看一下实在找不出哪错 栈的存储与操作
数据加载中...
 
   



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

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