error: expression must have a class type

2019-01-29 07:19发布

I get the error: expression must have a class type Firstly, I don't understand why I am getting this error. I create and object and use it. in my main:

#include "Worker.h"

int main()
{

    Worker myWorker();
    myWorker.inputInfo();
    myWorker.displayPayBarGraph();

}

Worker.h

//Worker.h
//Definition of class Workers
//Member functions are defined in Worker.cpp


//Worker class defintion 

class Worker
{
public:
    Worker();               //constructor initializes worker type

    void inputInfo();           //attains worker information
    void displayPayBarGraph();  //prints a bar graph representation of the pay

private:

    int workerCode;     //worker type
    //PAY FOR EACH WORKER
    double code1pay;            //manager
    double code2pay;            //hourly workers
    double code3pay;            //commission workrs
    double code4pay;            //pieceworkers

    int hourlyWorkerPay(double, int);   //returns the pay of hourly workers
    int commissionPay(int);     //returns the commission workers pay
    int pieceWorkerPay(int, int);   //returns the pieceworkers pay
};

标签: c++ class object
2条回答
来,给爷笑一个
2楼-- · 2019-01-29 07:32

Most vexing parse :

This line:

Worker myWorker();

declares a function taking no parameters and returning a Worker.

Simply declare your object with :

Worker myWorker;
查看更多
做自己的国王
3楼-- · 2019-01-29 07:42

Assuming the implementation of the Worker class is ok and no other errors,

int main()
{

    Worker myWorker;
    myWorker.inputInfo();
    myWorker.displayPayBarGraph();

}
查看更多
登录 后发表回答