|
|
|
Не пйму.
|
|||
|---|---|---|---|
|
#18+
Почему этот код выдаут ошибку :error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class OBJ' (or there is no acceptable conversion). Компилятор VC 6 #include "stdafx.h" #include "iostream" #include "fstream" using namespace std; class OBJ { public: int id_obj; int x; int y; ostream& operator << (ostream& s); }; ostream& OBJ::operator <<(ostream& s) { return s<<id_obj<<x<<y; } int main(int argc, char* argv[]) { OBJ d; d.id_obj=1; d.x=1; d.y=1; ofstream file("c:\\dima.dat"); cout<<d; file.close(); return 0; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 07:23 |
|
||
|
Не пйму.
|
|||
|---|---|---|---|
|
#18+
ну сделай так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 10:35 |
|
||
|
Не пйму.
|
|||
|---|---|---|---|
|
#18+
Это известная проблема VC6. Лечится отказом от using namespace std и явной квалификацией: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 11:36 |
|
||
|
Не пйму.
|
|||
|---|---|---|---|
|
#18+
а friend там зачем? Это же метод класса... Или я чё-то не так понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 15:11 |
|
||
|
Не пйму.
|
|||
|---|---|---|---|
|
#18+
А слона-то я и не приметил:) В оригинальном коде автора ошибка бы не убралась и после предложенных манипуляций, посколько operator >> как член класса можно было бы использовать только так: OBJ obj; obj << std::cout; Другими словами, оператор автора не имеет никакого отношения к оператору вывода в поток, используемый в стандартной библиотеке. Теперь на счет friend-а. В моем коде он обязателен, поскольку мы формируем внешний по отношению к foo бинарный оператор. Если бы это был член класса foo, то с приведенной сигнатурой мы бы получили тернарный оператор, за что получили бы от компилятора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 15:30 |
|
||
|
Не пйму.
|
|||
|---|---|---|---|
|
#18+
Спасибо всем, разобрался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 01:57 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2034680]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
14ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 437ms |

| 0 / 0 |
