Сегодня день странных вещей ....
Получил глупый файл hpp и другой тупой файл cpp, пытаясь реализовать глупый класс.
Вот они:
// HPP
#ifndef _WFQUEUE_MANAGER_PROXY_HPP_
#define _WFQUEUE_MANAGER_PROXY_HPP_
#include <iostream>
#include <string>
#include "workflow.hpp"
#include "wfqueue.hpp"
//-----------------------------------------------------------------------------
// Enum, struct, aliases
namespace middleware {
typedef struct {
std::string proxy_ipaddr; /* IP address to manager */
std::string proxy_port; /* Port to manager */
} WFProxyConfig;
}
//-----------------------------------------------------------------------------
// Class definitions
namespace middleware {
/*!
* This class provides network interface to access the workflow queue. It is
* important to notice that constructor is private in order to let a factory
* perform such a work.
*/
class WFQueueManagerProxy : public WFQueue {
/*!
* To let factory build properly this object, we provide access to every
* part of it.
*/
friend class WFQueueProxyFactory;
private:
/*!
* Privately constructs the object. Default configuration with loopback
* address and invalid port.
*/
WFQueueManagerProxy();
public:
/*!
* Destructor
*/
~WFQueueManagerProxy();
/*!
* Enqueues a workflow.
*/
void enqueue(const Workflow& workflow);
/*!
* Dequeues a workflow.
*/
const Workflow& dequeue();
private:
/*!
* Privately constructs the object. Assigning configuration.
*/
void ConfigureProxy(WFProxyConfig conf);
/*!
* Parameters for proxy.
*/
WFProxyConfig _config;
}; /* WFQueueManagerProxy */
} /* middleware */
#endif
Здесь другой
// CPP
#include "wfqueue_manager_proxy.hpp"
using namespace middleware;
//-----------------------------------------------------------------------------
// Constructors and destructor
/* Private constructor */
WFQueueManagerProxy::WFQueueManagerProxy() {
(this->_config).proxy_ipaddr = "127.0.0.1";
(this->_config).proxy_port = "0";
}
/* Destructor */
WFQueueManagerProxy::~WFQueueManagerProxy() {
}
//-----------------------------------------------------------------------------
// Public members
/* Enqueue */
void WFQueueManagerProxy::enqueue(const Workflow& workflow) {
}
/* Dequeue */
const Workflow& WFQueueManagerProxy::dequeue() {
}
//-----------------------------------------------------------------------------
// Private members
void WFQueueManagerProxy::ConfigureProxy(WFProxyConfig conf) {
}
Кто-нибудь, пожалуйста, объясните мне, почему g ++ говорит мне следующее:
wfqueue_manager_proxy.cpp: In
конструктор
«Промежуточного слоя :: WFQueueManagerProxy :: WFQueueManagerProxy ()»:
wfqueue_manager_proxy.cpp: 32: ошибка:
'учебный класс
middleware :: WFQueueManagerProxy ’имеет
нет члена с именем ‘_config’
wfqueue_manager_proxy.cpp: 33: ошибка:
'учебный класс
middleware :: WFQueueManagerProxy ’имеет
нет члена с именем ‘_config’
wfqueue_manager_proxy.cpp: в глобальном
область действия: wfqueue_manager_proxy.cpp: 51:
ошибка: переменная или поле
ConfigureProxy объявлен недействительным
wfqueue_manager_proxy.cpp: 51: ошибка:
WFProxyConfig не был объявлен в
эта сфера
ABSURD ...
Он не распознает этот typedef и тоже не распознает закрытый член ... и, более чем все ... почему g ++ не распознает функцию-член, пытающуюся увидеть ее как переменную ?????????
Я попробовал все ...
PS (тому, кто видел мой предыдущий пост): моя виртуальная машина сейчас не является причиной. Я проверил и получил подтверждение, что ни один виртуальный жесткий диск не поврежден или не столкнулся с другими виртуальными модулями памяти.