簡體   English   中英

已經定義的方法(模板類)

[英]method already defined (template class)

我在所有方法上都收到錯誤“ class.obj中已經定義的方法”,我已經看到一些解決方案包括將類分為頭文件和.cpp文件,但是在這種情況下是不可能的。

任何幫助都感激不盡。

這是我的h文件: http : //pastebin.com/k46JEQBH

cpp具有:

#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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM