前提・実現したいこと
ある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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/10 07:09