定义只有标题的类 - 找不到不存在的cpp

时间:2013-06-01 19:32:32

标签: c++ templates header

我的目标是通过我的链表创建自己的堆栈,它可以作为整数,字符串等的模板。以下是我的两个重要文件。

Main.cpp的

#include <iostream>
#include <string>
#include "Stack.h"

using namespace std;

int main()
{
    Stack<int>* myStack = new Stack<int>();
    myStack->add(5);

    system("pause");
    return 0;
}

Stack.h

#pragma once

#include <iostream>
#include <string>
#include "LinkedList.h"

using namespace std;

template <class T>
class Stack 
{
public:
    Stack()
    {}
    ~Stack()
    {}

    void add(const T& val);

    ....

private:
    LinkedList<T> myStack;
};

template<class T>
inline void Stack<T>::add(const T& val)
{
    myStack.newHead(val);
}

....

我最初把Stack的实现放到它自己的.cpp中,但我遇到了问题,建议我用.h内联定义成员函数。奇怪的是,每当我运行Main.cpp时,我都会得到这个:

  

“错误C1083:无法打开源文件:'Stack.cpp':没有这样的文件或目录。”

这是我第一次尝试没有.cpp的课程 - 我忽略了什么?

1 个答案:

答案 0 :(得分:1)

从项目中删除“Stack.cpp”。它在解决方案资源管理器中。