私がここにいる問題は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
で発生します。下記の2つのヘッダーファイルは参考用です。どんな助けでも大いに感謝します。 :-)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; }
コンパイラからエラーメッセージが表示されますか?エラーメッセージの** exact **テキストを追加します。 –
*正確なエラーはどうなりますか?また、誰もがやっていることで英語でプログラムしようとするので、誰かに助けを求めたり、授与したり、受けたりするのがより簡単になります。 – rubenvb
'friend std :: ostream&Sadrzaj :: operator <<'は意味をなさない。おそらく 'Sadrzaj ::'部分を削除してください –