Набор переменных не может быть разрешен

0

У меня возникает проблема при попытке использовать переменные, объявленные в другом классе. Я не могу понять, где проблема. Кто-нибудь может помочь?

Это мой заголовочный файл:

#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. Когда я создаю программу, она показывает ошибку: Symbol '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;
}
  • 0
    Вы написали новую функцию OriginalState (), она не соответствует SMTPServer :: OriginalState (). Та же проблема с send (). Какую книгу по С ++ вы используете? Возьми другой.
  • 3
    не добавляйте "используя пространство имен std;" в заголовок.
Показать ещё 1 комментарий
Теги:
compiler-errors

4 ответа

1
Лучший ответ

Вам необходимо использовать оператор разрешения области :: для определения функций:

void SMTPServer::OriginalState()
{
    newMessage = false;
    newRec = false;
    newSender = false;
    newData = false;
}
  • 0
    Благодарю. Также у меня есть эта ошибка: make: *** [src / SMTPServer.o] Ошибка 1 SMTP C / C ++ Проблема
  • 0
    Какой компилятор вы используете? На какой IDE / OS?
Показать ещё 6 комментариев
1

Вы должны указать в своем.cpp файле, что эти методы принадлежат классу SMTPServer. то есть:

void SMTPServer::send(HELO h1)
{

}

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

В реализации send и OriginalState вы не используете оператор разрешения области видимости для обозначения того, что это реализация функций-членов; as-is, компилятор принимает их как свободные функции.

0

Вы забыли поместить SMTPServer:: thing для двух последних определений функций

Ещё вопросы

Сообщество Overcoder
Наверх
Меню