C++ 枚举类不是类或命名空间
在我使用Operation::ADD、Operation::SUBTRACT、Operation::MULTIPLY或Operation::DIVIDE的每一行中,我都会看到“'Operation'不是类或名称空间”(mainwindow.cpp文件) main.cpp:C++ 枚举类不是类或命名空间,c++,qt,enums,namespaces,C++,Qt,Enums,Namespaces,在我使用Operation::ADD、Operation::SUBTRACT、Operation::MULTIPLY或Operation::DIVIDE的每一行中,我都会看到“'Operation'不是类或名称空间”(mainwindow.cpp文件) main.cpp: #include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setWindowTitle("Calculator");
w.resize(300, 475);
w.show();
return a.exec();
}
主窗口
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLabel>
#include "operationenum.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
QLabel* text;
void cancel();
void plusMinusClicked();
void modulo();
void add();
void subtract();
void multiply();
void divide();
void equals();
void dotBtnClicked();
void _0BtnClicked();
void _1BtnClicked();
void _2BtnClicked();
void _3BtnClicked();
void _4BtnClicked();
void _5BtnClicked();
void _6BtnClicked();
void _7BtnClicked();
void _8BtnClicked();
void _9BtnClicked();
long double number1;
long double number2;
Operation operation;
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
\ifndef主窗口
#定义主窗口
#包括
#包括
#包括“operationnum.h”
名称空间用户界面{
类主窗口;
}
类主窗口:公共QMainWindow
{
Q_对象
公众:
显式主窗口(QWidget*parent=0);
QLabel*文本;
作废取消();
void plusMinus();
空模();
无效添加();
空减法();
空乘();
无效分割();
空等于();
void dotbtcled();
void_0BtnClicked();
void 1BtnClicked();
void 2BtnClicked();
void_3BtnClicked();
void_4BtnClicked();
void 5btn();
void 6btn();
void 7btn();
void 8btn();
void_9BtnClicked();
长双数1;
长双数;
手术操作;
~main窗口();
私人:
Ui::MainWindow*Ui;
};
#endif//main窗口
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <string>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
text = new QLabel("42", this);
// Operation buttons.
QPushButton* addBtn = new QPushButton("+", this);
QPushButton* subtractBtn = new QPushButton("-", this);
QPushButton* multiplyBtn = new QPushButton("x", this);
QPushButton* divideBtn = new QPushButton("÷", this);
QPushButton* equalsBtn = new QPushButton("=", this);
QPushButton* cancelBtn = new QPushButton("C", this);
QPushButton* plusMinusBtn = new QPushButton("±", this);
QPushButton* moduloBtn = new QPushButton("%", this);
// Digit buttons.
QPushButton* dotBtn = new QPushButton(".", this);
QPushButton* _0Btn = new QPushButton("0", this);
QPushButton* _1Btn = new QPushButton("1", this);
QPushButton* _2Btn = new QPushButton("2", this);
QPushButton* _3Btn = new QPushButton("3", this);
QPushButton* _4Btn = new QPushButton("4", this);
QPushButton* _5Btn = new QPushButton("5", this);
QPushButton* _6Btn = new QPushButton("6", this);
QPushButton* _7Btn = new QPushButton("7", this);
QPushButton* _8Btn = new QPushButton("8", this);
QPushButton* _9Btn = new QPushButton("9", this);
text -> setGeometry(0, 0, 300, 100);
cancelBtn -> setGeometry(0, 100, 75, 75);
plusMinusBtn -> setGeometry(75, 100, 75, 75);
moduloBtn -> setGeometry(150, 100, 75, 75);
divideBtn -> setGeometry(225, 100, 75, 75);
_7Btn -> setGeometry(0, 175, 75, 75);
_8Btn -> setGeometry(75, 175, 75, 75);
_9Btn -> setGeometry(150, 175, 75, 75);
multiplyBtn -> setGeometry(225, 175, 75, 75);
_4Btn -> setGeometry(0, 250, 75, 75);
_5Btn -> setGeometry(75, 250, 75, 75);
_6Btn -> setGeometry(150, 250, 75, 75);
subtractBtn -> setGeometry(225, 250, 75, 75);
_1Btn -> setGeometry(0, 325, 75, 75);
_2Btn -> setGeometry(75, 325, 75, 75);
_3Btn -> setGeometry(150, 325, 75, 75);
addBtn -> setGeometry(225, 325, 75, 75);
_0Btn -> setGeometry(0, 400, 150, 75);
dotBtn -> setGeometry(150, 400, 75, 75);
equalsBtn -> setGeometry(225, 400, 75, 75);
connect(cancelBtn, &QPushButton::clicked, this, &MainWindow::cancel);
connect(_0Btn, &QPushButton::clicked, this, &MainWindow::_0BtnClicked);
connect(_1Btn, &QPushButton::clicked, this, &MainWindow::_1BtnClicked);
connect(_2Btn, &QPushButton::clicked, this, &MainWindow::_2BtnClicked);
connect(_3Btn, &QPushButton::clicked, this, &MainWindow::_3BtnClicked);
connect(_4Btn, &QPushButton::clicked, this, &MainWindow::_4BtnClicked);
connect(_5Btn, &QPushButton::clicked, this, &MainWindow::_5BtnClicked);
connect(_6Btn, &QPushButton::clicked, this, &MainWindow::_6BtnClicked);
connect(_7Btn, &QPushButton::clicked, this, &MainWindow::_7BtnClicked);
connect(_8Btn, &QPushButton::clicked, this, &MainWindow::_8BtnClicked);
connect(_9Btn, &QPushButton::clicked, this, &MainWindow::_9BtnClicked);
connect(dotBtn, &QPushButton::clicked, this, &MainWindow::dotBtnClicked);
connect(plusMinusBtn, &QPushButton::clicked, this, &MainWindow::plusMinusClicked);
operation = Operation::ADD;
number1 = 0;
number2 = 0;
}
void MainWindow::cancel()
{
text -> setText("");
}
void MainWindow::plusMinusClicked()
{
if((text -> text().toUtf8()).at(0) != '-')
{
text -> setText("-" + text -> text().toUtf8());
}
else
{
text -> setText(text -> text().remove(0, 1));
}
}
void MainWindow::add()
{
number2 = (text -> text()).toDouble();
if(operation == Operation::ADD)
{
number1 += number2;
}
else if(operation == Operation::SUBTRACT)
{
number1 -= number2;
}
else if(operation == Operation::MULTIPLY)
{
number1 *= number2;
}
else if(operation == Operation::DIVIDE)
{
number1 /= number2;
}
else if(operation == Operation::MODULO)
{
number1 %= number2;
}
operation = Operation::ADD;
text -> setText("");
}
void MainWindow::subtract()
{
number2 = (text -> text()).toDouble();
if(operation == Operation::ADD)
{
number1 += number2;
}
else if(operation == Operation::SUBTRACT)
{
number1 -= number2;
}
else if(operation == Operation::MULTIPLY)
{
number1 *= number2;
}
else if(operation == Operation::DIVIDE)
{
number1 /= number2;
}
else if(operation == Operation::MODULO)
{
number1 %= number2;
}
operation = Operation::SUBTRACT;
text -> setText("");
}
void MainWindow::multiply()
{
number2 = (text -> text()).toDouble();
if(operation == Operation::ADD)
{
number1 += number2;
}
else if(operation == Operation::SUBTRACT)
{
number1 -= number2;
}
else if(operation == Operation::MULTIPLY)
{
number1 *= number2;
}
else if(operation == Operation::DIVIDE)
{
number1 /= number2;
}
else if(operation == Operation::MODULO)
{
number1 %= number2;
}
operation = Operation::MULTIPLY;
text -> setText("");
}
void MainWindow::divide()
{
number2 = (text -> text()).toDouble();
if(operation == Operation::ADD)
{
number1 += number2;
}
else if(operation == Operation::SUBTRACT)
{
number1 -= number2;
}
else if(operation == Operation::MULTIPLY)
{
number1 *= number2;
}
else if(operation == Operation::DIVIDE)
{
number1 /= number2;
}
else if(operation == Operation::MODULO)
{
number1 %= number2;
}
operation = Operation::DIVIDE;
text -> setText("");
}
void MainWindow::modulo()
{
number2 = (text -> text()).toDouble();
if(operation == Operation::ADD)
{
number1 += number2;
}
else if(operation == Operation::SUBTRACT)
{
number1 -= number2;
}
else if(operation == Operation::MULTIPLY)
{
number1 *= number2;
}
else if(operation == Operation::DIVIDE)
{
number1 /= number2;
}
else if(operation == Operation::MODULO)
{
number1 %= number2;
}
operation = Operation::MODULO;
text -> setText("");
}
void MainWindow::equals()
{
text -> setText(number(number1));
}
void MainWindow::_0BtnClicked()
{
text -> setText(text -> text().toUtf8() + "0");
}
void MainWindow::_1BtnClicked()
{
text -> setText(text -> text().toUtf8() + "1");
}
void MainWindow::_2BtnClicked()
{
text -> setText(text -> text().toUtf8() + "2");
}
void MainWindow::_3BtnClicked()
{
text -> setText(text -> text().toUtf8() + "3");
}
void MainWindow::_4BtnClicked()
{
text -> setText(text -> text().toUtf8() + "4");
}
void MainWindow::_5BtnClicked()
{
text -> setText(text -> text().toUtf8() + "5");
}
void MainWindow::_6BtnClicked()
{
text -> setText(text -> text().toUtf8() + "6");
}
void MainWindow::_7BtnClicked()
{
text -> setText(text -> text().toUtf8() + "7");
}
void MainWindow::_8BtnClicked()
{
text -> setText(text -> text().toUtf8() + "8");
}
void MainWindow::_9BtnClicked()
{
text -> setText(text -> text().toUtf8() + "9");
}
void MainWindow::dotBtnClicked()
{
text -> setText(text -> text().toUtf8() + ".");
}
MainWindow::~MainWindow()
{
delete ui;
}
#包括“mainwindow.h”
#包括“ui_main window.h”
#包括
#包括
主窗口::主窗口(QWidget*父窗口):
QMainWindow(父级),
用户界面(新用户界面::主窗口)
{
text=新的QLabel(“42”,本);
//操作按钮。
QPushButton*addBtn=新的QPushButton(“+”,this);
QPushButton*subtractBtn=新的QPushButton(“-”,this);
QPushButton*multiplyBtn=新的QPushButton(“x”,这是);
QPushButton*divideBtn=新的QPushButton(“÷”,本);
QPushButton*equalsBtn=新的QPushButton(“=”,此);
QPushButton*cancelBtn=新的QPushButton(“C”,这是);
QPushButton*plusMinusBtn=新的QPushButton(“±”,此符号);
QPushButton*moduloBtn=新的QPushButton(“%”,此);
//数字按钮。
QPushButton*dotBtn=新的QPushButton(“.”,this);
QPushButton*_0Btn=新的QPushButton(“0”,此);
QPushButton*1Btn=新的QPushButton(“1”,本);
QPushButton*2Btn=新的QPushButton(“2”,本);
QPushButton*_3Btn=新的QPushButton(“3”,本);
QPushButton*_4Btn=新的QPushButton(“4”,本);
QPushButton*5Btn=新的QPushButton(“5”,本);
QPushButton*6Btn=新的QPushButton(“6”,本);
QPushButton*7Btn=新的QPushButton(“7”,本);
QPushButton*8Btn=新的QPushButton(“8”,本);
QPushButton*_9Btn=新的QPushButton(“9”,本);
text->setGeometry(0,0,300,100);
取消BTN->setGeometry(0,100,75,75);
plusMinusBtn->setGeometry(75,100,75,75);
moduloBtn->setGeometry(150、100、75、75);
divideBtn->setGeometry(225、100、75、75);
_7Btn->setGeometry(0,175,75,75);
_8Btn->setGeometry(75,175,75,75);
_9Btn->setGeometry(150、175、75、75);
multiplyBtn->setGeometry(225、175、75、75);
_4Btn->setGeometry(0、250、75、75);
_5Btn->setGeometry(75250,75,75);
_6Btn->setGeometry(150250,75,75);
减去BTN->setGeometry(225、250、75、75);
_1Btn->setGeometry(0325,75,75);
_2Btn->setGeometry(75,325,75,75);
_3Btn->setGeometry(150、325、75、75);
addBtn->setGeometry(225、325、75、75);
_0Btn->setGeometry(0、400、150、75);
dotBtn->setGeometry(150400,75,75);
equalsBtn->setGeometry(225,400,75,75);
连接(cancelBtn,&QPushButton::clicked,this,&MainWindow::cancel);
连接(\u 0Btn,&QPushButton::clicked,this,&main窗口::\u 0BtnClicked);
连接(1Btn,&QPushButton::clicked,this,&main窗口::1BtnClicked);
连接(2Btn,&QPushButton::clicked,this,&main窗口::2BtnClicked);
连接(_3Btn,&QPushButton::clicked,this,&main窗口::_3btnclick);
连接(_4Btn,&QPushButton::clicked,this,&main窗口::_4btnclick);
连接(5Btn,&QPushButton::clicked,this,&main窗口::5BtnClicked);
连接(6Btn,&QPushButton::clicked,this,&main窗口::6BtnClicked);
连接(7Btn,&QPushButton::clicked,this,&main窗口::7BtnClicked);
连接(8Btn,&QPushButton::clicked,this,&main窗口::8BtnClicked);
连接(_9Btn,&QPushButton::clicked,this,&main窗口::_9btnclick);
连接(dotBtn,&QPushButton::clicked,this,&main窗口::dotBtnClicked);
连接(plusMinusBtn、&QPushButton::clicked、this、&MainWindow::plusMinusClicked);
操作=操作::添加;
数字1=0;
数字2=0;
}
void主窗口::取消()
{
text->setText(“”);
}
void主窗口::plusMinusClicked()
{
如果((text->text().toUtf8()).at(0)!=“-”)
{
text->setText(“-”+text->text().toUtf8());
}
其他的
{
text->setText(text->text()。删除(0,1));
}
}
void主窗口::添加()
{
number2=(文本->文本()).toDouble();
如果(操作==操作::添加)
{
number1+=number2;
}
else if(操作==操作::减法)
{
编号1-=编号2;
}
else if(操作==操作::乘法)
{
number1*=number2;
}
else if(operation==operation::DIVIDE)
{
number1/=number2;
}
else if(操作==操作::模)
{
number1%=number2;
}
操作=操作::添加;
text->setText(“”);
}
void MainWindow::subtract()
{
number2=(文本->文本()).toDouble();
如果(操作==操作::添加)
{
number1+=number2;
}
else if(操作==操作::减法)
{
编号1-=编号2;
}
else if(操作==操作::乘法)
{
number1*=number2;
}
else if(operation==operation::DIVIDE)
{
number1/=number2;
}
else if(操作==操作::模)
{
number1%=number2;
}
运算=运算::减法;
text->setText(“”);
}
void主窗口::multiply()
{
number2=(文本->文本()).toDouble();
如果(操作==操作::添加)
{
number1+=number2;
}
else if(操作==操作::减法)
{
number1-=麻木
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <string>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
text = new QLabel("42", this);
// Operation buttons.
QPushButton* addBtn = new QPushButton("+", this);
QPushButton* subtractBtn = new QPushButton("-", this);
QPushButton* multiplyBtn = new QPushButton("x", this);
QPushButton* divideBtn = new QPushButton("÷", this);
QPushButton* equalsBtn = new QPushButton("=", this);
QPushButton* cancelBtn = new QPushButton("C", this);
QPushButton* plusMinusBtn = new QPushButton("±", this);
QPushButton* moduloBtn = new QPushButton("%", this);
// Digit buttons.
QPushButton* dotBtn = new QPushButton(".", this);
QPushButton* _0Btn = new QPushButton("0", this);
QPushButton* _1Btn = new QPushButton("1", this);
QPushButton* _2Btn = new QPushButton("2", this);
QPushButton* _3Btn = new QPushButton("3", this);
QPushButton* _4Btn = new QPushButton("4", this);
QPushButton* _5Btn = new QPushButton("5", this);
QPushButton* _6Btn = new QPushButton("6", this);
QPushButton* _7Btn = new QPushButton("7", this);
QPushButton* _8Btn = new QPushButton("8", this);
QPushButton* _9Btn = new QPushButton("9", this);
text -> setGeometry(0, 0, 300, 100);
cancelBtn -> setGeometry(0, 100, 75, 75);
plusMinusBtn -> setGeometry(75, 100, 75, 75);
moduloBtn -> setGeometry(150, 100, 75, 75);
divideBtn -> setGeometry(225, 100, 75, 75);
_7Btn -> setGeometry(0, 175, 75, 75);
_8Btn -> setGeometry(75, 175, 75, 75);
_9Btn -> setGeometry(150, 175, 75, 75);
multiplyBtn -> setGeometry(225, 175, 75, 75);
_4Btn -> setGeometry(0, 250, 75, 75);
_5Btn -> setGeometry(75, 250, 75, 75);
_6Btn -> setGeometry(150, 250, 75, 75);
subtractBtn -> setGeometry(225, 250, 75, 75);
_1Btn -> setGeometry(0, 325, 75, 75);
_2Btn -> setGeometry(75, 325, 75, 75);
_3Btn -> setGeometry(150, 325, 75, 75);
addBtn -> setGeometry(225, 325, 75, 75);
_0Btn -> setGeometry(0, 400, 150, 75);
dotBtn -> setGeometry(150, 400, 75, 75);
equalsBtn -> setGeometry(225, 400, 75, 75);
connect(cancelBtn, &QPushButton::clicked, this, &MainWindow::cancel);
connect(_0Btn, &QPushButton::clicked, this, &MainWindow::_0BtnClicked);
connect(_1Btn, &QPushButton::clicked, this, &MainWindow::_1BtnClicked);
connect(_2Btn, &QPushButton::clicked, this, &MainWindow::_2BtnClicked);
connect(_3Btn, &QPushButton::clicked, this, &MainWindow::_3BtnClicked);
connect(_4Btn, &QPushButton::clicked, this, &MainWindow::_4BtnClicked);
connect(_5Btn, &QPushButton::clicked, this, &MainWindow::_5BtnClicked);
connect(_6Btn, &QPushButton::clicked, this, &MainWindow::_6BtnClicked);
connect(_7Btn, &QPushButton::clicked, this, &MainWindow::_7BtnClicked);
connect(_8Btn, &QPushButton::clicked, this, &MainWindow::_8BtnClicked);
connect(_9Btn, &QPushButton::clicked, this, &MainWindow::_9BtnClicked);
connect(dotBtn, &QPushButton::clicked, this, &MainWindow::dotBtnClicked);
connect(plusMinusBtn, &QPushButton::clicked, this, &MainWindow::plusMinusClicked);
operation = Operation::ADD;
number1 = 0;
number2 = 0;
}
void MainWindow::cancel()
{
text -> setText("");
}
void MainWindow::plusMinusClicked()
{
if((text -> text().toUtf8()).at(0) != '-')
{
text -> setText("-" + text -> text().toUtf8());
}
else
{
text -> setText(text -> text().remove(0, 1));
}
}
void MainWindow::add()
{
number2 = (text -> text()).toDouble();
if(operation == Operation::ADD)
{
number1 += number2;
}
else if(operation == Operation::SUBTRACT)
{
number1 -= number2;
}
else if(operation == Operation::MULTIPLY)
{
number1 *= number2;
}
else if(operation == Operation::DIVIDE)
{
number1 /= number2;
}
else if(operation == Operation::MODULO)
{
number1 %= number2;
}
operation = Operation::ADD;
text -> setText("");
}
void MainWindow::subtract()
{
number2 = (text -> text()).toDouble();
if(operation == Operation::ADD)
{
number1 += number2;
}
else if(operation == Operation::SUBTRACT)
{
number1 -= number2;
}
else if(operation == Operation::MULTIPLY)
{
number1 *= number2;
}
else if(operation == Operation::DIVIDE)
{
number1 /= number2;
}
else if(operation == Operation::MODULO)
{
number1 %= number2;
}
operation = Operation::SUBTRACT;
text -> setText("");
}
void MainWindow::multiply()
{
number2 = (text -> text()).toDouble();
if(operation == Operation::ADD)
{
number1 += number2;
}
else if(operation == Operation::SUBTRACT)
{
number1 -= number2;
}
else if(operation == Operation::MULTIPLY)
{
number1 *= number2;
}
else if(operation == Operation::DIVIDE)
{
number1 /= number2;
}
else if(operation == Operation::MODULO)
{
number1 %= number2;
}
operation = Operation::MULTIPLY;
text -> setText("");
}
void MainWindow::divide()
{
number2 = (text -> text()).toDouble();
if(operation == Operation::ADD)
{
number1 += number2;
}
else if(operation == Operation::SUBTRACT)
{
number1 -= number2;
}
else if(operation == Operation::MULTIPLY)
{
number1 *= number2;
}
else if(operation == Operation::DIVIDE)
{
number1 /= number2;
}
else if(operation == Operation::MODULO)
{
number1 %= number2;
}
operation = Operation::DIVIDE;
text -> setText("");
}
void MainWindow::modulo()
{
number2 = (text -> text()).toDouble();
if(operation == Operation::ADD)
{
number1 += number2;
}
else if(operation == Operation::SUBTRACT)
{
number1 -= number2;
}
else if(operation == Operation::MULTIPLY)
{
number1 *= number2;
}
else if(operation == Operation::DIVIDE)
{
number1 /= number2;
}
else if(operation == Operation::MODULO)
{
number1 %= number2;
}
operation = Operation::MODULO;
text -> setText("");
}
void MainWindow::equals()
{
text -> setText(number(number1));
}
void MainWindow::_0BtnClicked()
{
text -> setText(text -> text().toUtf8() + "0");
}
void MainWindow::_1BtnClicked()
{
text -> setText(text -> text().toUtf8() + "1");
}
void MainWindow::_2BtnClicked()
{
text -> setText(text -> text().toUtf8() + "2");
}
void MainWindow::_3BtnClicked()
{
text -> setText(text -> text().toUtf8() + "3");
}
void MainWindow::_4BtnClicked()
{
text -> setText(text -> text().toUtf8() + "4");
}
void MainWindow::_5BtnClicked()
{
text -> setText(text -> text().toUtf8() + "5");
}
void MainWindow::_6BtnClicked()
{
text -> setText(text -> text().toUtf8() + "6");
}
void MainWindow::_7BtnClicked()
{
text -> setText(text -> text().toUtf8() + "7");
}
void MainWindow::_8BtnClicked()
{
text -> setText(text -> text().toUtf8() + "8");
}
void MainWindow::_9BtnClicked()
{
text -> setText(text -> text().toUtf8() + "9");
}
void MainWindow::dotBtnClicked()
{
text -> setText(text -> text().toUtf8() + ".");
}
MainWindow::~MainWindow()
{
delete ui;
}
<source>:2:1: warning: scoped enums only available with -std=c++11 or -std=gnu++11
enum class Operation
^
<source>: In function 'int main()':
<source>:16:14: error: 'Operation' is not a class or namespace
operation = Operation::ADD;
^
Compiler exited with result code 1