🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C++

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

Q&A

解決済

1回答

14146閲覧

C++のプログラムにおけるundefined reference でのエラー

LenItsuki

総合スコア89

C++

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

0グッド

0クリップ

投稿2019/11/11 13:42

以下のファイルを同じフォルダに入れて,
g++ list7_22.cpp
を実行しても,undefined referenceのエラーが出ます.解決法を教えて頂けますと助かります.
実行環境:Windows10 64bit msys64

C++

1//list7_22.cpp 2#include <iostream> 3#include <string> 4using namespace std; 5#include "Point.h" 6 7int main() { 8 Point p; 9 10 cout << "x座標とy座標を入力してください:"; 11 cin >> p; 12 13 cout << "入力された座標は、" << p << "です。" << endl; 14 15 return 0; 16} 17

C++

1//Point.h 2class Point { 3 private: 4 double x; // x座標を格納するメンバ変数 5 double y; // y座標を格納するメンバ変数 6 public: 7 Point(double x = 0, double y = 0); // コンストラクタ 8 double getX(); // x座標を返すゲッタ 9 double getY(); // y座標を返すゲッタ 10 Point operator+(const Point &p); // + 演算子のオーバーロード 11 Point operator-(const Point &p); // - 演算子のオーバーロード 12 bool operator==(const Point &p); // == 演算子のオーバーロード 13 bool operator!=(const Point &p); // != 演算子のオーバーロード 14 // >> 演算子のオーバーロード 15 friend istream &operator>>(istream &is, Point &p); 16 // << 演算子のオーバーロード 17 friend ostream &operator<<(ostream &os, const Point &p); 18}; 19

エラーメッセージ

C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\tmp\ccuAgtAm.o:list7_22.cpp:(.text+0x1d): undefined reference to Point::Point(double, double)' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\tmp\ccuAgtAm.o:list7_22.cpp:(.text+0x43): undefined reference to operator>>(std::istream&, Point&)'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\tmp\ccuAgtAm.o:list7_22.cpp:(.text+0x65): undefined reference to `operator<<(std::ostream&, Point const&)'
collect2.exe: error: ld returned 1 exit status

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

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

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

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

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

LouiS0616

2019/11/11 13:47

Pointの実装はどこに行ったんでしょう?
KoichiSugiyama

2019/11/11 16:33

LouiS0616さんがご指摘されているように、本来Point.cppというようなソースがあるべきですが、そちらも提示していただけないと、回答しようがありません。もし作成されていないとすると、エラーはそれが原因です。作成されているのにエラーが出る場合、また違う場所に問題がある、というように問題を切り分けていかないと推測だけでは解決にたどり着けないと思います。
guest

回答1

0

ベストアンサー

Point.hには、Pointクラスの定義が記述してありますが、その実態がどこにも存在してません。
ということで、それが見つからない、というエラーが出てます

投稿2019/11/11 22:39

y_waiwai

総合スコア88038

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

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

LenItsuki

2019/11/12 00:57

Pointクラスの実態が書かれたPoint.cppを入れてコンパイルとビルドをしていませんでした.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問