Tôi đang sử dụng Ubuntu 16.04 Khi tôi cố gắng biên dịch chương trình với
g ++ -g main.cpp -o chính
Đây là phiên bản g ++ của tôi
g++ --version
g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Bản quyền (C) 2019 Tổ chức phần mềm miễn phí, Inc.
Đây là phần mềm miễn phí; xem nguồn để biết điều kiện sao chép. Không có
sự bảo đảm; thậm chí không vì KHẢ NĂNG BÁN ĐƯỢC hoặc SỰ PHÙ HỢP CHO MỘT MỤC ĐÍCH CỤ THỂ.
Tôi nhận được lỗi biên dịch này
main.cpp:8: tham chiếu không xác định đến `Helper::IsStringNumeric(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
coll2: lỗi: ld trả về 1 trạng thái thoát
chính.cpp:
#include "Trợ giúp.h"
#include <iostream>
#bao gồm <vectơ>
int chính ()
{
std::cout << Helper::IsStringNumeric("200");
}
Người trợ giúp.h
#ifndef HỖ TRỢ_H
#define HỖ TRỢ_H
#bao gồm <vectơ>
#bao gồm <chuỗi>
người trợ giúp lớp học
{
riêng:
/* dữ liệu */
công cộng:
bool tĩnh IsStringNumeric(const std::string &str);
};
#endif
Helper.cpp
#include "Trợ giúp.h"
#bao gồm <chuỗi>
#include <thuật toán>
Trình trợ giúp bool::IsStringNumeric(const std::string &str)
{
std::string::const_iterator iterator = str.begin();
while (iterator != str.end() && std::isdigit(*iterator))
{
trình lặp ++;
}
return !str.empty() && iterator == str.end();
}
Các tệp cpp và tiêu đề của tôi có vẻ đúng, Vì vậy, tôi không chắc tại sao mình lại gặp lỗi