我在所有方法中收到错误“已在class.obj中定义的方法”, 我已经看到一些解决方案包括将类分成标题和.cpp文件,但在这种情况下不可能。
非常感谢任何帮助。
这是我的文件:http://pastebin.com/k46JEQBH
cpp有:
#include "stdafx.h"
#include "poly.h"
答案 0 :(得分:1)
问题是您的定义位于标题中,并且可能包含在多个.cpp文件中。每个.cpp文件都是一个新的翻译单元。想象一下,你一次编译一个.cpp文件。对于包含标头的每个.cpp文件,它将是第一次遇到标头,POLY_H
尚未定义。允许声明多次出现,但定义不允许出现。将您的定义移动到单独的.cpp文件中,一切都应该有效。
编辑:保留标题中的定义是必要的,并允许模板类,但您的类不是模板化的。
答案 1 :(得分:0)
你曾经使用过#pragma吗?你用的是什么编译器?
您是否尝试过使用包含警卫来查看是否可以解决错误?例如:
#ifndef POLY_H
#define POLY_H
//your code minus the pragma once
#endif //POLY_H