Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.14.80.45] |
|
Сообщ.
#1
,
|
|
|
#include <vcl/vcl.h>
#include <iostream.h> #include <fstream.h> class A { private: String name; public: A(){}; A(String name_): name(name_) { } ~SityPhoneCode(){}; friend ostream& operator << ( ostream& o, A& a); friend istream& operator >> ( istream& o, A& a); }; istream& operator >> ( istream& o, A& a) { o >> a.name; return o; } ostream& operator << ( ostream& o, A& a) { o << a.name.c_str(); return o; } возникает ошибка [C++ Error] A.hpp(71): E2094 'operator>>' not implemented in type 'istream' for arguments of type 'AnsiString'. Ладно, как рекомендует Borland вставляю #define VCL_IOSTREAM #include <vcl.h> И получаю ошибку [C++ Error] sysclass.H(413): E2450 Undefined structure 'IDispatch'. которую уже никак объяснить не могу, кто поможет? Borland C++ Builder 4 with sp1&2 |
Сообщ.
#2
,
|
|
|
В BCB5 на такой код не ругается
#define VCL_IOSTREAM <br>#include <vcl.h><br><br>class A<br>{<br> private:<br> String name;<br> public:<br> A(){};<br> A(String name_): name(name_)<br> {<br> }<br> ~A(){}; // <- вместо Вашего ~SityPhoneCode(){};<br><br> friend ostream& operator << ( ostream& o, A& a);<br> friend istream& operator >> ( istream& o, A& a);<br>};<br><br>istream& operator >> ( istream& o, A& a)<br>{<br> o >> a.name;<br> return o;<br>}<br><br>ostream& operator << ( ostream& o, A& a)<br>{<br> o << a.name.c_str();<br> return o;<br>} |
Сообщ.
#3
,
|
|
|
не совсем понятно присутствие деструктора ~SityPhoneCode
а вообще перегрузка потоковых функций занятие неблагодарное... Лучше создавать операторы, похожие на << для нужд СВОЕГО класса |