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

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

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

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

Q&A

解決済

2回答

422閲覧

エラーの理由がわかりません

Ray_Kadokura

総合スコア17

C++

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

0グッド

0クリップ

投稿2018/08/09 07:58

前提・実現したいこと

あるC++をコンパイルするとあるエラーが出てきたのですが、これを治したいです。

発生している問題・エラーメッセージ

あるコードをコンパイルするとこのようなエラーが出てくるのですが、どうしたらいいのかわかりません。

エラーメッセージ Undefined symbols for architecture x86_64: "Account::Account(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long)", referenced from: _main in list1004-ed46b5.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

該当のソースコード

ソースコードはこちらになります。
これは「明解 C++ 入門編」(柴田望洋)という本のp365のList10-4のコードを写したものです。クラスを学ぶ章です。

//銀行口座クラス(第3版:メンバ関数の定義を分離)とその利用例 #include <iostream> #include <string> using namespace std; class Account { private: string full_name; string number; long crnt_balance; public: Account(string name, string num, long amnt); //コンストラクタ(宣言のみ) //---名義氏名を調べる---// string name() { return full_name; } //---口座番号を調べる---// string no() { return number; } //---預金残高を調べる---// long balance() { return crnt_balance; } //---預ける---// void deposit(long amnt); //---おろす---// void withdraw(long amnt); }; void Account::deposit(long amnt) { crnt_balance += amnt; } void Account::withdraw(long amnt) { crnt_balance -= amnt; } int main() { Account suzuki("鈴木龍一", "12345678", 1000); //鈴木君の口座 Account takeda("武田浩文", "87654321", 200); //武田君の口座 suzuki.withdraw(200); takeda.deposit(100); cout << "■鈴木君の口座:\"" << suzuki.name() << "\" (" << suzuki.no() << ") " << suzuki.balance() << "円\n"; cout << "■武田君の口座:\"" << takeda.name() << "\" (" << takeda.no() << ") " << takeda.balance() << "円\n"; }

試したこと

ネットで調べても多分初心者すぎるためによくわかりませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

柴田望洋氏の本に掲載されているソースリストは下記からダウンロード可能です。

柴田望洋ダウンロード

List 10-4というのを見てみましたら、きちんとコンストラクタが掲載されていました。おそらく、書籍はページ数の関係から端折っているのだと思います。
上記URLからダウンロードしてそれを使ってみてください。
(書籍のどこかにもURLが記載されているはず)

投稿2018/08/09 08:34

PineMatsu

総合スコア3579

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

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

Ray_Kadokura

2018/08/10 07:09

コンストラクタをちゃんと書いていないだけでした。 そうなんですね。ありがとうございます。
guest

0

ベストアンサー

コンストラクタの実装が見当たりませんが、打ち忘れていないですか。

投稿2018/08/09 08:02

LouiS0616

総合スコア35660

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問