Điểm:-1

C++ Tham chiếu không xác định đến hàm

lá cờ ng

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

Điểm:2
lá cờ hr

Thêm #include "Trợ giúp.h" cho bạn chính.cpp làm cho tuyên ngôn của Người trợ giúp::IsStringNumeric hiển thị với trình biên dịch, nhưng bạn vẫn cần biên dịch Helper.cpp để đối tượng mã để làm cho Định nghĩa của Người trợ giúp::IsStringNumeric có sẵn khi bạn liên kết của bạn chủ yếu chương trình.

Bạn có thể biên dịch từng đơn vị dịch thành mã đối tượng tập tin và sau đó liên kết chúng:

g++ -g -o main.o -c main.cpp
g++ -g -o Helper.o -c Helper.cpp
g++ main.o Helper.o -o chính

hoặc (đối với các chương trình đơn giản) thực hiện tất cả trong một bước

g++ -g main.cpp Helper.cpp -o chính

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.