1
我在這裏遇到的問題是class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Sadrzaj const &)
。我在互聯網上搜索了很多方面的解決方案,但找不到它。當我嘗試在主源文件中包含Data.h
時,會出現此問題,Content.h
也是如此。下面是兩個頭文件供參考。任何幫助都非常感謝。 :-)C++中的模板問題
#pragma once
#include <iostream>
class Content
{
friend std::ostream& operator<<(std::ostream &str, const Content&);
public:
virtual void print(std::ostream&) const = 0;
};
std::ostream& operator<<(std::ostream &str, const Content& temp)
{
temp.print(str);
return str;
}
#pragma once
#include "Content.h"
template <class T>
class Data: public Content
{
public:
Data(const T&);
void print(std::ostream&) const override;
private:
T data;
};
template <class T>
Data<T>::Data(const T& data) : data(data) {}
template <class T>
void Data<T>::print(std::ostream& str) const { str << data; }
您是否從編譯器收到錯誤消息?添加錯誤消息的**精確**文本。 –
你得到了什麼*確切*錯誤?另外,嘗試用英語進行編程,因爲這就是每個人都可以做的事情,因此向任何人請求,給予和接受幫助會更容易。 – rubenvb
'friend std :: ostream&Sadrzaj :: operator <<'沒有意義。也許刪除'Sadrzaj ::'部分 –