方法已定义(模板类)
method already defined (template class)
我的所有方法都收到错误"方法已在class.obj中定义",我已经看到一些解决方案包括将类分成标题和.cpp文件,但在这种情况下是不可能的。
任何帮助将不胜感激。
这是我的H文件:http://pastebin.com/k46JEQBH
菲共有:
#include "stdafx.h"
#include "poly.h"
问题是您的定义在您的标头中,并且它可能包含在多个.cpp文件中。每个.cpp文件都是一个新的翻译单元。假设您一次编译一个.cpp文件。对于包含标头的每个.cpp文件,这将是第一次遇到标头,POLY_H
尚未定义。声明允许多次出现,但定义不允许。将您的定义移动到单独的.cpp文件中,一切都应该可以正常工作。
编辑:模板类必须将定义保留在标头中,并且允许这样做,但您的类不是模板化的。
会不会是你曾经使用过一次 #pragma?您使用什么编译器?
您是否尝试过使用包含防护来查看是否可以解决错误?例如:
#ifndef POLY_H
#define POLY_H
//your code minus the pragma once
#endif //POLY_H
相关文章:
- 在父类中为多个子类定义方法
- 在.cpp文件中定义方法而不是在 C++ 的 .h 文件中定义方法时,如何提高代码的性能?
- 对已定义方法的未定义引用
- 需要派生的类来定义方法
- 在某些名称空间中定义方法时,在全局名称空间中声明
- 在类 C++ 中重定义方法
- 这两种定义方法的样式之间是否存在差异
- 对已定义方法的未定义引用、标头中的声明和源匹配
- 如果未在类 c++ 中定义方法,如何在类对象上使用方法
- 在为嵌入式类定义方法时,有没有办法避免重复包含类
- 有关C++中一个或多个乘法定义方法的错误
- 在 cpp 文件中定义方法时未解析外部,但在标头中定义时未解析
- 是否允许所有未使用的未定义方法
- 如何在声明之外为专门用于无参数的可变模板类定义C++方法
- 什么是编程语言为派生类重新定义方法的能力
- 在C++中,在类定义内部或外部定义方法体是否更为传统
- 向std::vector或typdef添加自定义方法
- 如果在头文件中定义方法,内联关键字有什么用?
- C++ 我知道数组长度,但想知道是否是一种更简洁的数组元素定义方法
- 在类作用域内定义方法时,除非在原始 cpp 文件中的其他位置调用方法,否则项目不会编译