Почему при работе с перегруженными операторами объявленными как друзья в Visual C++ 6.0 нельзя напрямую работать с закрытыми членами через переданные объекты
Здравствуйте, Goradon, Вы писали:
G>Почему при работе с перегруженными операторами объявленными как друзья в Visual C++ 6.0 нельзя напрямую работать с закрытыми членами через переданные объекты
Здравствуйте, Goradon, Вы писали:
G>Почему при работе с перегруженными операторами объявленными как друзья в Visual C++ 6.0 нельзя напрямую работать с закрытыми членами через переданные объекты
Наверное, у тебя где-то есть using namespace std? Был такой баг у VC 6.0.
Of course, the code must be complete enough to compile and link.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Здравствуйте, Goradon, Вы писали:
G>>Почему при работе с перегруженными операторами объявленными как друзья в Visual C++ 6.0 нельзя напрямую работать с закрытыми членами через переданные объекты
L_L>Наверное, у тебя где-то есть using namespace std? Был такой баг у VC 6.0.
G>А есть ли какая-нибудь "заплатка" на этот баг?
Здравствуйте, Goradon, Вы писали:
G>Здравствуйте, Bell, Вы писали:
B>>Пример кода и диагностику компилятора в студию.
G> #include <iostream>
using namespace std;
class MyClass {
int num;
public:
MyClass() { num = 0; }
friend istream& operator >> (istream&, MyClass&);
};
Да, проблема именно в using namespace std; в загловке.
Придется директиву using перенести в cpp-файл.
Кстати для повышения мотивации можно воспользоваться поиском по форуму на предмет "почему не нужно писать using namespace в заголовках".