Puncte:-1

C++ Referință nedefinită la o funcție

drapel ng

Folosesc ubuntu 16.04 când încerc să compilez programul cu

g++ -g principal.cpp -o principal

Aceasta este versiunea mea g++

g++ --versiune
g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Drepturi de autor (C) 2019 Free Software Foundation, Inc.
Acesta este software gratuit; consultați sursa pentru condițiile de copiere. Nu este
garanție; nici măcar pentru VANTABILITATE sau ADEPTEREA PENTRU UN ANUMIT SCOP.

Primesc această eroare de compilare

main.cpp:8: referință nedefinită la `Helper::IsStringNumeric(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: eroare: ld a returnat 1 stare de ieșire

main.cpp:

#include „Helper.h”
#include <iostream>
#include <vector>


int main()
{
    std::cout << Helper::IsStringNumeric("200");
}

Ajutor.h

#ifndef HELPER_H
#define HELPER_H

#include <vector>
#include <șir>
Ajutor de clasă
{
privat:
    /* date */
public:
    
   static bool IsStringNumeric(const std::string &str);
   
};

#endif

Helper.cpp

#include „Helper.h”
#include <șir>
#include <algoritm>
bool Helper::IsStringNumeric(const std::string &str)
{
    std::string::const_iterator iterator = str.begin();
    
    while (iterator != str.end() && std::isdigit(*iterator))
    {
        ++iterator;
    }
    return !str.empty() && iterator == str.end();
}

Fișierele mele cpp și antet par corecte, așa că nu sunt sigur de ce primesc erori

Puncte:2
drapel hr

Adăugând #include „Helper.h” pentru dumneavoastră principal.cpp face ca declaraţie de Helper::IsStringNumeric vizibil pentru compilator, dar tot trebuie să compilați Helper.cpp pentru a obiecta codul pentru a face definiție de Helper::IsStringNumeric disponibil atunci când vă conectați principal program.

Puteți fie să compilați fiecare unitate de traducere într-un cod obiect fişier și apoi leagă-le:

g++ -g -o main.o -c main.cpp
g++ -g -o Helper.o -c Helper.cpp
g++ main.o Helper.o -o main

sau (pentru programe simple) faceți totul într-un singur pas

g++ -g main.cpp Helper.cpp -o main

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.