Orion447
Orion447

Reputation: 400

C++ compiling error

I have a compiling error in C++ using classes. I have worked with classes before and have never encountered this error. I have tried adding static before the method ImprtData but that only prompted more errors.

error: invalid use of non-static member function bank.ImprtData;

here is my .cpp

#include "componets.h"

User::User() {
std::cout << "loaded" << std::endl;
}

void User::ImprtData() {

    std::cout << "loaded.\n";
}

and here is my .h

#include <sstream>
#include <fstream>
#include <vector>
#include <iostream>
#include <string>

class User {
    public:
            User();
            void write();
            void launch_main_menu();
            void login();
          void ImprtData();  
    private:
            void deposit();
            void withdrawl();
            std::string account_name;
            int account_pin;
            float account_balance;
            std::string account_user_name;
};

and finally my main

#include "componets.h"

int main() {
    std::cout << "Welcome to Bank 111.\n";
    User bank;
   bank.ImprtData;

    return 0;
}

Upvotes: 0

Views: 3791

Answers (2)

Bathsheba
Bathsheba

Reputation: 234635

This is essentially a simple typo. Replace

bank.ImprtData;

with

bank.ImprtData();

to call the function. The expression bank.ImprtData is confusing the compiler since it's interpreting it as the address of a function, and issues a diagnostic since the function is not static.

Upvotes: 1

Vidrohi
Vidrohi

Reputation: 112

bank.ImprtData; should be bank.ImprtData();

Upvotes: 0

Related Questions