1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Что бы качестве параметров класс принимал любой класс, где определена операция вывода. Где идет проверка времени компиляции, что инстанцируемый класс имеет необходимую функцию ( чтоб избежать непонятных сообщений компилятора при попытке иснтанцировать левый класс) .
Мне не нужен код, а какой нибудь пример на заданную тему ...
#include <string> #include <iostream> #include <fstream> #include<memory> using namespace std ; //****************************************************************** class base { public : virtual void print () = 0 ; } ; //***************************************************************
class printmonitor : public base { string outString ;
ofstream out("outfile.txt",ios::out) ; if(!out) {cout <<"Cannot open file test for writing " << endl ; } out << outString ; out.close () ; } //*************************************************************** int main() {
//pprintmonitor = new printmonitor("test my program 1"); //pprintinfile = new printinfile("test my program 2"); auto_ptr<base> pprintmonitor (new printmonitor("test my program 1")) ; auto_ptr<base> pprintinfile (new printinfile("test my program 2")) ; pprintmonitor->print(); pprintinfile->print();