C++编译错误

标签 c++ compilation

我在使用类的 C++ 中遇到编译错误。我以前使用过类,但从未遇到过此错误。我尝试在方法 ImprtData 之前添加静态,但这只会提示更多错误。

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

这是我的.cpp

#include "componets.h"

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

void User::ImprtData() {

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

这是我的.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;
};

最后是我的主

#include "componets.h"

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

    return 0;
}

最佳答案

这本质上是一个简单的错字。替换

bank.ImprtData;

bank.ImprtData();

调用函数。表达式 bank.ImprtData 混淆了编译器,因为它将它解释为函数的地址,并发出诊断,因为函数不是 static

关于C++编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47568712/

相关文章:

c++ - cout 打印不正确的值

java - Java中的#ifdef#ifndef

java - 为什么Java代码需要编译而JavaScript代码不需要

mysql - 如何设置 Netbeans 以使用 C 语言进行 MySQL 编程

c++ - C++ 11 标准是否保证 std::atomic<> 被实现为无锁操作?

c++ - 响应式地检查两个队列而不 Hook CPU

oracle - 使用 'ORA-04063: package body “…”调用时,成功编译的Oracle软件包失败。

c++ - 根据环境选择C二进制

c++ - 大数据处理技术与书籍

C++ Open CV为相同形状的轮廓绘制一种颜色