ฉันใช้ Ubuntu 16.04 เมื่อฉันพยายามคอมไพล์โปรแกรมด้วย
g++ -g main.cpp -o หลัก
นี่คือเวอร์ชัน g++ ของฉัน
g ++ -- รุ่น
g++ (อูบุนตู 9.3.0-17ubuntu1~20.04) 9.3.0
ลิขสิทธิ์ (C) 2019 Free Software Foundation, Inc.
นี่เป็นซอฟต์แวร์ฟรี ดูแหล่งที่มาสำหรับเงื่อนไขการคัดลอก ไม่มี
การรับประกัน; ไม่แม้แต่สำหรับการค้าหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ
ฉันได้รับข้อผิดพลาดในการรวบรวมนี้
main.cpp:8: การอ้างอิงที่ไม่ได้กำหนดถึง `Helper::IsStringNumeric(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
Collect2: ข้อผิดพลาด: ld ส่งคืนสถานะการออก 1 รายการ
main.cpp:
#include "Helper.h"
#รวมถึง <iostream>
#รวม <เวกเตอร์>
int หลัก ()
{
std::cout << ตัวช่วย :: IsStringNumeric ("200");
}
Helper.h
#ifndef HELPER_H
#กำหนด HELPER_H
#รวม <เวกเตอร์>
#รวมถึง <สตริง>
ตัวช่วยชั้น
{
ส่วนตัว:
/* ข้อมูล */
สาธารณะ:
บูลคงที่ IsStringNumeric(const std::string &str);
};
#เอนดิฟ
Helper.cpp
#include "Helper.h"
#รวมถึง <สตริง>
#include <อัลกอริทึม>
ตัวช่วยบูล :: IsStringNumeric (const std :: สตริง & str)
{
std::string::const_iterator วนซ้ำ = str.begin();
ในขณะที่ (iterator != str.end() && std::isdigit(*iterator))
{
++ตัววนซ้ำ;
}
กลับ !str.empty() && iterator == str.end();
}
ไฟล์ cpp และส่วนหัวของฉันดูเหมือนถูกต้อง ดังนั้นฉันจึงไม่แน่ใจว่าเหตุใดฉันจึงได้รับข้อผิดพลาด