c++ - Call to non-static member function without an object argument compiler error -


i working on project intro c++ class build program calculate various statistics. have calculations down, our professor wants use std::istream collect input file. program keep collecting information file until reaches end of file marker. unfamiliar way std::istream works , keep encountering error when try compile.

main.cpp:5:10: error: call non-static member function without object argument stats::getinput(std::cin);

here stats.cpp file:

#include "stats.h" #include <vector> #include <cstdlib> #include <iostream>  stats::stats(){ }  std::vector <double> stats::getinput(std::istream& input_stream){    std::vector <double> stream;   double x;    while(input_stream){      input_stream >> x;     // std::cout << "your list of numbers is: " << x << std::endl;      if(input_stream){       stream.push_back(x);     }    }    return stream; } 

here header file:

#ifndef _stats_ #define _stats_ #include <vector> #include <cstdlib>  class stats{   public:   stats();   std::vector <double> getinput(std::istream& input_stream);   private:    };  #endif 

and here main.cpp file:

#include "stats.h" #include <iostream>  int main(){   stats::getinput(std::cin); } 

like said, beginner in c++ answer simple, c++ vastly different python. have seen similar questions, none of them have helped me figure out.

thanks

the error message compiler clear.

getinput non-static member function of class.

you need object of class able use member function.

instead of

stats::getinput(std::cin); 

use

stats obj; obj.getinput(std::cin); 

another solution.

since class not have member variables, may change getinput static member functions.

class stats {     public:       stats();       static std::vector <double> getinput(std::istream& input_stream);     private: }; 

if that, may use:

stats::getinput(std::cin); 

also, loop read data can simplified to:

while (input_stream >> x){   stream.push_back(x); } 

Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -