質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1919閲覧

LNK2019 未解決の外部シンボル

Y.R.T

総合スコア42

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/05/18 01:20

下記、エラーが出ています。
何か宣言が足りないのでしょうか?
または、ライブラリが足りないのでしょうか?

エラー LNK2019 未解決の外部シンボル "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Date const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVDate@@@Z) が関数 _main で参照されました。

何卒、ご回答のほどよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

std::ostream& operator<<(std::ostream& stream, const Date& data)

を定義していないか、あるいはリンクしてないんじゃないかしら。

投稿2020/05/18 01:38

編集2020/05/18 02:03
episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.R.T

2020/05/18 01:55

ヘッダファイルに下記を記述はしていますが、うまく読み込めていないのでしょうか? Visual Studioの画面の『ソリューションエクスプローラ』の『ヘッダーファイル』には、 指定のファイル名が入っているのですが。。。 std::ostream& operator<<(std::ostream& s, const Date& x); std::istream& operator>>(std::istream& s, Date& x);
episteme

2020/05/18 01:59

ヘッダに書かれているからコンパイルはできてる。 で、std::ostream& operator<<(std::ostream& s, const Date& x); の本体はコード中にありますか?
Y.R.T

2020/05/18 03:31

#include <sstream> #include <iostream> ・ ・ ・ string Date::to_string() const { ostringstream s; s << y << "年" << m << "月" << d << "日"; return s.str(); } という記述はありますが。。。 これではだめでしょうか?
episteme

2020/05/18 03:35

いやダメもなにもコンパイラ(リンカ)が欲しがってるのは std::ostream& operator<<(std::ostream& s, const Date& x); です。 Date::to_string() ではありません。
Y.R.T

2020/05/18 04:37

下記を追加してうまくいきました。 ありがとうござます。 ostream& operator<<(ostream& s, const Date& x) { return s << x.to_string(); } istream& operator>>(istream& s, Date& x) { int y, m, d; char c; s >> y >> c >> m >> c >> d; x = Date(y, m, d); return s; }
episteme

2020/05/18 07:00

僕だったら ostream& Date::to_stream(ostream& stream) const { return s << y << "年" << m << "月" << d << "日"; } string Date::to_string() const { ostringstream stream; to_stream(stream); return stream.str(); } ostream& operator<<(ostream& stream, const Date& x) { return x.to_stream(stream); } ってやる。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問