У меня возникает проблема при попытке использовать переменные, объявленные в другом классе. Я не могу понять, где проблема. Кто-нибудь может помочь?
Это мой заголовочный файл:
#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;
}
Вам необходимо использовать оператор разрешения области ::
для определения функций:
void SMTPServer::OriginalState()
{
newMessage = false;
newRec = false;
newSender = false;
newData = false;
}
Вы должны указать в своем.cpp файле, что эти методы принадлежат классу SMTPServer. то есть:
void SMTPServer::send(HELO h1)
{
}
void SMTPServer::OriginalState()
{
newMessage = false;
newRec = false;
newSender = false;
newData = false;
}
В реализации send
и OriginalState
вы не используете оператор разрешения области видимости для обозначения того, что это реализация функций-членов; as-is, компилятор принимает их как свободные функции.
Вы забыли поместить SMTPServer::
thing для двух последних определений функций