Передача объекта типа fstream
От: Volodkya  
Дата: 06.05.10 07:47
Оценка: :)
А как правильно передать объект типа fstream?
например как передать B возможность использовать
установленный поток?...вопрос детский но чего-то голова не варит утром...
class A {
private:
fstream c("1", ios::app);
};

class B{
};
Re: Передача объекта типа fstream
От: placement_new  
Дата: 06.05.10 07:50
Оценка:
Здравствуйте, Volodkya, Вы писали:

V>А как правильно передать объект типа fstream?

V>например как передать B возможность использовать
V>установленный поток?...вопрос детский но чего-то голова не варит утром...
V>
V>class A {
V>private:
V>fstream c("1", ios::app);
V>};

V>class B{
V>};
V>


По константной ссылке?
Re[2]: Передача объекта типа fstream
От: Volodkya  
Дата: 06.05.10 08:02
Оценка:
Здравствуйте, placement_new, Вы писали:

_>Здравствуйте, Volodkya, Вы писали:


V>>А как правильно передать объект типа fstream?

V>>например как передать B возможность использовать
V>>установленный поток?...вопрос детский но чего-то голова не варит утром...
V>>
V>>class A {
V>>private:
V>>fstream c("1", ios::app);
V>>};

V>>class B{
V>>};
V>>


_>По константной ссылке?


класс B должен иметь доступ к уже открытому и установленному
потоку в классе A
Re[3]: Передача объекта типа fstream
От: uzhas Ниоткуда  
Дата: 06.05.10 08:09
Оценка:
Здравствуйте, Volodkya, Вы писали:

class A
{
public:
  A()
    : c("1", ios::app)
  {}

  // variant 1
  void PrintData(const std::string& data)
  {
    c << data << std::endl;
  }

  //variant 2
  fstream& GetStream()
  {
  }

private:
  fstream c;
};

class B
{
public:
  void Print1()
  {
    a.PrintData("kukuruza");
  }

  void Print2()
  {
    a.GetStream() << "kukuruza" << std::endl;
  }
private:
  A a;
};


V>класс B должен иметь доступ к уже открытому и установленному

V>потоку в классе A

Ну вот я предложил два варианта. Код не компилировал, показал идею.
Re[4]: Передача объекта типа fstream
От: Volodkya  
Дата: 06.05.10 08:16
Оценка:
Здравствуйте, uzhas, Вы писали:

U>Здравствуйте, Volodkya, Вы писали:


U>
U>class A
U>{
U>public:
U>  A()
U>    : c("1", ios::app)
U>  {}

U>  // variant 1
U>  void PrintData(const std::string& data)
U>  {
U>    c << data << std::endl;
U>  }

U>  //variant 2
U>  fstream& GetStream()
U>  {
U>  }

U>private:
U>  fstream c;
U>};

U>class B
U>{
U>public:
U>  void Print1()
U>  {
U>    a.PrintData("kukuruza");
U>  }

U>  void Print2()
U>  {
U>    a.GetStream() << "kukuruza" << std::endl;
U>  }
U>private:
U>  A a;
U>};
U>


V>>класс B должен иметь доступ к уже открытому и установленному

V>>потоку в классе A

U>Ну вот я предложил два варианта. Код не компилировал, показал идею.


точно же) спасибо!
Re[5]: Передача объекта типа fstream
От: Volodkya  
Дата: 09.05.10 18:19
Оценка:
Здравствуйте, Volodkya, Вы писали:

V>Здравствуйте, uzhas, Вы писали:


U>>Здравствуйте, Volodkya, Вы писали:


U>>
U>>class A
U>>{
U>>public:
U>>  A()
U>>    : c("1", ios::app)
U>>  {}

U>>  // variant 1
U>>  void PrintData(const std::string& data)
U>>  {
U>>    c << data << std::endl;
U>>  }

U>>  //variant 2
U>>  fstream& GetStream()
U>>  {
U>>  }

U>>private:
U>>  fstream c;
U>>};

U>>class B
U>>{
U>>public:
U>>  void Print1()
U>>  {
U>>    a.PrintData("kukuruza");
U>>  }

а как передать сам объект fstream?
чтобы и класс A и класс B могли использовать созданный файл типа 1.date ?
U>>  void Print2()
U>>  {
U>>    a.GetStream() << "kukuruza" << std::endl;
U>>  }
U>>private:
U>>  A a;
U>>};
U>>


V>>>класс B должен иметь доступ к уже открытому и установленному

V>>>потоку в классе A

U>>Ну вот я предложил два варианта. Код не компилировал, показал идею.


V>точно же) спасибо!
Re[5]: Передача объекта типа fstream
От: Volodkya  
Дата: 09.05.10 18:24
Оценка:
Здравствуйте, Volodkya, Вы писали:

V>Здравствуйте, uzhas, Вы писали:


U>>Здравствуйте, Volodkya, Вы писали:


U>>
U>>class A
U>>{
U>>public:
U>>  A()
U>>    : c("1", ios::app)
U>>  {}

U>>  // variant 1
U>>  void PrintData(const std::string& data)
U>>  {
U>>    c << data << std::endl;
U>>  }

U>>  //variant 2
U>>  fstream& GetStream()
U>>  {
U>>  }

U>>private:
U>>  fstream c;
U>>};

U>>class B
U>>{
U>>public:
U>>  void Print1()
U>>  {
U>>    a.PrintData("kukuruza");
U>>  }

U>>  void Print2()
U>>  {
U>>    a.GetStream() << "kukuruza" << std::endl;
U>>  }
U>>private:
U>>  A a;
U>>};
U>>


V>>>класс B должен иметь доступ к уже открытому и установленному

V>>>потоку в классе A

U>>Ну вот я предложил два варианта. Код не компилировал, показал идею.


V>точно же) спасибо!


А как передать fstream так, тчтобы и A и B могли работать с файлом 1.dat, например,
созданным fstream?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.