im не уверен, почему у меня проблемы с ostream. Если я использую использование пространства имен std; он вызывает больше ошибок, чем ошибки компоновщика.ostream problems C++
Это мой код, где возникают проблемы и ошибки.
virtual void Put (ostream&) const;
error C2061: syntax error : identifier 'ostream'
error C2065: 'ostream' : undeclared identifier
error C2059: syntax error : ')'
error C2143: syntax error : missing ';' before '{'
error C2447: '{' : missing function header (old-style formal list?)
error C2061: syntax error : identifier 'ostream'
error C2061: syntax error : identifier 'ostream'
это контейнер .h заголовочный файл, где я нахожусь, имеющие проблемы с
#ifndef CONTAINER_H
#define CONTAINER_H
#include <ostream>
#include <iostream>
#include "Object.h"
#include "NullObject.h"
#include "Ownership.h"
#include "Iterator.h"
#include "Visitor.h"
class Container : public virtual Object, public virtual Ownership
{
protected:
unsigned int count;
Container();
public:
virtual unsigned int Count() const;
virtual bool IsEmpty() const;
virtual bool IsFull() const;
// virtual HashValue Hash() const;
virtual void Put (ostream&) const;
virtual Iterator& NewIterator() const;
virtual void Purge() = 0;
virtual void Accept (Visitor&) const = 0;
};
#endif
, если я использую
virtual void Put (std::ostream&) const;
он фиксирует ошибки, однако, в файле .cpp исходящего Я получаю те же ошибки выше в функции put. Я попытался выполнить std :: в функции put, но он запустил тонну ошибок компоновщика. Я попытался использовать пространство имен std; также, но это порождает тонну ошибок компоновщика.
#include "Container.h"
#include "NullIterator.h"
#include <ostream>
#include <iostream>
Container::Container() :
count (0)
{}
unsigned int Container::Count() const
{ return count; }
bool Container::IsEmpty() const
{ return Count() == 0; }
bool Container::IsFull() const
{ return false; }
Iterator& Container::NewIterator() const
{ return *new NullIterator(); }
void Container::Put(ostream&)const
{
return;
}
Heres ошибки я теперь получить в этом файле container.cpp
error C2065: 'ostream' : undeclared identifier
error C2059: syntax error : ')'
error C2143: syntax error : missing ';' before '{'
error C2447: '{' : missing function header (old-style formal list?)
я попытался #include fstream
Я буду признателен за любую помощь здесь. тем больше кода, но я не думаю, что вам нужно увидеть другие файлы.
Если я делаю то, что он выбрасывает все виды ошибок компоновщика – Steller
Вы объявили: class Container: public virtual Object, public virtual Ownership. Почему вы используете виртуальные здесь? –
Иногда для производного класса D имеет смысл только содержать только один экземпляр базового класса A. В C++ это выполняется с использованием виртуальных базовых классов: 10 класс A {...}; класс B1: виртуальная публикация A {...}; класс B2: виртуальная публикация A {...}; класс D: public B1, public B2 {...}; – Steller