方法已定义(模板类)

method already defined (template class)

本文关键字:定义 方法      更新时间:2023-10-16

我的所有方法都收到错误"方法已在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