gpt4 book ai didi

c++ - 重新定义...,之前在这里声明

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:24:21 24 4
gpt4 key购买 nike

我知道有很多这样的问题,但我找不到适合我的解决方案。不管怎样,我有 4 个文件,两个头文件和两个 cpp 文件,一个实现和一个主文件。

头文件1

#ifndef SORTEDINTERFACE_H
#define SORTEDINTERFACE_H
using namespace std;

template<class ListItemType>
class sortedInterface
{
public:
virtual int sortedGetLength() const = 0;
virtual bool sortedIsEmpty() const = 0;
virtual bool sortedInsert(const ListItemType& newItem) = 0;
virtual bool sortedRemove(const ListItemType& anItem) = 0;
virtual bool sortedRetrieve(const ListItemType& anItem) = 0;
virtual int getItemCount () = 0;

private:
virtual int locatePosition(const ListItemType& anItem) = 0;
};
#endif // SORTEDINTERFACE_H_INCLUDED

头文件2

#ifndef SORTED_H
#define SORTED_H
#include "sortedInterface.h"
using namespace std;

template<class ListItemType>
class sorted : public sortedInterface<ListItemType>
{
public:
sorted();
int sortedGetLength() const;
bool sortedIsEmpty() const;
bool sortedInsert(const ListItemType& newItem);
bool sortedRemove(const ListItemType& anItem);
bool sortedRetrieve(const ListItemType& anItem);
int getItemCount();

private:
static const int DEFAULT_LIST_SIZE = 10;
ListItemType items[DEFAULT_LIST_SIZE];
int itemCount;
int maxItems;
int locatePosition(const ListItemType& anItem);
};
#include "sorted.cpp"
#endif // SORTED_H

CPP 文件

#include "sorted.h"
#include <cstddef>
using namespace std;

template<class ListItemType>
sorted<ListItemType>::sorted() : itemCount(0), maxItems(DEFAULT_LIST_SIZE)
{
} // end default constructor

主 CPP 文件

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

int main()
{
sorted<string> test;
return 0;
}

当我编译时,我收到错误/警告1. 重新定义'sorted::sorted()2. sorted::sorted()' 先前在这里声明

当我注释掉头文件 #2 末尾的 #include "sorted.cpp"时,它起作用了,但随后在我的主文件中,它没有重新定位我排序的测试对象。<​​/p>

任何帮助都会很棒,在此先感谢。

最佳答案

你也在编译 sorted.cpp 吗?我认为你不应该。

关于c++ - 重新定义...,之前在这里声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21541260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com