无法解析一组变量

时间:2013-12-26 19:28:02

标签: c++ compiler-errors

我在尝试使用另一个类中声明的变量时遇到问题。我无法弄清楚问题出在哪里。有人可以帮忙吗?

这是我的头文件:

#include <string>
#include <iostream>
#include "HELO.h"

using namespace std;

#ifndef SMTPSERVER_H_INCLUDED
#define SMTPSERVER_H_INCLUDED

class SMTPServer
{
    private: bool newMessage;
    private: bool newRec;
    private: bool newSender;
    private: bool newData;

    public: SMTPServer();

    void send(HELO h1);
    void OriginalState();


};


#endif // SMTPSERVER_H_INCLUDED

以下是我的cpp类。当我构建程序时,它显示错误:无法解析符号'newData'。

#include "SMTPServer.h"
#include "HELO.h"


SMTPServer::SMTPServer()
{
    newMessage = NULL;
    newRec = NULL;
    newSender = NULL;
    newData = NULL;
}

void send(HELO h1)
{

}

void OriginalState()
{
    newMessage = false;
    newRec = false;
    newSender = false;
    newData = false;
}

4 个答案:

答案 0 :(得分:1)

您需要使用范围解析运算符::来进行函数定义:

void SMTPServer::OriginalState()
{
    newMessage = false;
    newRec = false;
    newSender = false;
    newData = false;
}

答案 1 :(得分:1)

您应该在.cpp文件中告诉这些方法属于SMTPServer类。即:

void SMTPServer::send(HELO h1)
{

}

void SMTPServer::OriginalState()
{
  newMessage = false;
  newRec = false;
  newSender = false;
  newData = false;
}

答案 2 :(得分:0)

sendOriginalState的实现中,您没有使用范围解析运算符来表示这些是成员函数实现;按原样,编译器将这些作为自由函数。

答案 3 :(得分:0)

您忘了将SMTPServer::内容放在最后两个函数定义