Форум программистов, компьютерный форум CyberForum.ru

Почему дружественная функция с перегруженным оператором << не имеет доступа к данным класса? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ нахождение Максимальной длины имени объекта Fat32 http://www.cyberforum.ru/cpp-beginners/thread359682.html
Прошу помощи,подсказки в решении такой вот задачки(С++Borland3.1) поиск объектов с максимальным количеством символов в имени среди объектов с длинными именами для FAT максимальное к-во-255 символов,это 20 дескрипторов по 13 симв неясно вот к примеру код LFN-0х0F,а какой код max LFN или его надо просчитывать,может кто сталкивался с подобной задачкой
C++ C++ Наследование динамического списка классом стеком. Салют форумчане. Новый курс, новые приключения. Вот и дали задание наследую динамический список создать стек. Список вроде сделал , да стек не пойму как к нему прикрутить. (Какие только велосипеды не придумают для лабораторных работ) List.h #ifndef LIST_H #define LIST_H #include <iostream> using std::cout; #include <new> #include "ListNode.h" template< typename NODETYPE > http://www.cyberforum.ru/cpp-beginners/thread359680.html
Литература по структурам данных и алгоритмам C++
Доброго Времени Суток! Хочу спросить совета, по поводу обширной книги по структурам данных и алгоритмам на C++. Отыскал следующие книги: 1. Организация структур данных и решение задач на С++, Уайс М. А. 2. Структуры и алгоритмы обработки данных: объектно-ориентированный подход и реализация на С++, А. А. Кубенский 3. Структуры и алгоритмы обработки данных. Примеры на языке Си, Б. С....
Перестановка строки. C++
#include <iostream> using namespace std; void change(char &a, char &b); void permutation(char* Str) { if(strlen(Str)%2 == 0)
C++ Объясните код программы http://www.cyberforum.ru/cpp-beginners/thread359647.html
Вот рабочий код) напротив каждой строки через 2 слеша обьясните что происходит в программе, желательно поподробнее) спасибо) #include <stdafx.h> #include <iostream> #include <algorithm> #include <string> #include <vector> using namespace std; class Csv { // read and parse comma-separated values
C++ Написать функцию is_equal() - поэлементное сравнение двух контейнера C++ Реализуйте следующую функцию: bool is_equa1( const int*ia, int ia_size,const vector<int> &ivec ); Функция is_equal() сравнивает поэлементно два контейнера. В случае разного размера контейнеров “хвост” более длинного в расчет не принимается. Понятно, что, если все сравниваемые элементы равны, функция возвращает true, если отличается хотя бы один – false. Используйте итератор для перебора... подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2011, 07:44     Почему дружественная функция с перегруженным оператором << не имеет доступа к данным класса?
В заголовочном файле "klass.h" есть класс:
C++
1
2
3
4
5
6
7
8
9
class klass
{
    int x;
public:
    klass();
    ~klass();
    void show();
    friend void operator<<(ostream& a, klass& b);
};
Когда в файле исходного кода (с олределениями функций) пытаюсь прописать определение дружественной функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "klass.h"
#include <iostream>
using namespace std;
 
klass::klass()
{
    x = 10;
}
klass::~klass()
{
}
void klass::show()
{
    cout << x << endl;
}
void operator<<(ostream& a, klass& b)
{
    a << b.x;
}
}
то вылазит ошибка, что член klass::x недоступен. Что не так? Подскажите, пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru