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

Дружественные (friend) функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создание объекта через указатель на базовый абстрактный класс http://www.cyberforum.ru/cpp-beginners/thread1030433.html
Есть абстрактный класс, от него наследуется 3 класса. В программе предусмотрено создание нового объекта(добавление клиента страховой компании). client - тот самый базовый класс, getN показывает текущее количество клиентов. Работаю с объектами через указатель на базовый класс. client *p; ........ client::changeN(client::getN()+1); //увеличиваем на 1 количество клиентов...
C++ Перегрузка операторов! Создать несколько объектов (например, a и b) разработанного класса. Класс – символьная строка. Реализовать для объектов данного класса перегрузку операции <= (b<=a). Содержимое объектов (a,b, их строк), до и после выполнения операции, вывести на экран. http://www.cyberforum.ru/cpp-beginners/thread1030431.html
C++ Конфликт имён в ромбовидном наследовании
class A { private: int a; public: A(a0) : a(a0) {} } class B1 : virtual public A { private: int b; int c;
Возможно ли сделать такой массив в c++ C++
Здравствуйте. Можно ли в С++ сделать динамический ассоциативный массив, вроде этого на Javascript: var cars = ; cars = ; cars = 'BMW'; cars = 20000; cars = ; cars = 'Aston Martin'; cars = 50000;
C++ Транслитерация c++ http://www.cyberforum.ru/cpp-beginners/thread1030389.html
Здравствуйте, есть часть задания, где нужно реализовать замену кирилици на латинь (Ввод: дом, вывод: dom). Подскажите самый простой способ.
C++ Доделать программу Помогите дорешать задачку, пожалуйста. Система из n материальных точек в пространстве задана с помощью последовательности действительных чисел x1,y1,z1,p1,x2,y2,z2,p2,......xn,yn,zn,pn-координаты i-ой точки,а pi-ее вес(i=1,2,....,n). Получить координаты центра тяжести системы. Мой код. В двумерном массиве mas строки - 4 параметра каждой координаты точки системы, столбцы - нумерация точек... подробнее

Показать сообщение отдельно
maddoxx
0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 24
06.12.2013, 00:31     Дружественные (friend) функции
Доброго времени суток.
Кратко о сути:
Имеются 2 класса - Float (представляет собой число типа float) и FloatMatrix (представляет собой матрицу с типом float).
Так вот, я хочу написать дружественную функцию, которая бы умножала матрицу из объекта класса FloatMatrix на число из объекта Float.
Соответственно у меня 5 файлов:
main.cpp
Float.h
FloatMatrix.h
Float.cpp
FloatMatrix.cpp

Но я конкретно путаюсь к какому классу нужно писать friend функцию.
Я сделал следующим образом:
Объявил friend функцию в FloatMatrix.h
C++
1
friend void mulMatrixForValue(Float value, FloatMatrix & matrix);
В FloatMatrix.cpp написал ее реализацию
C++
1
2
3
4
5
6
void mulMatrixForValue(Float value, FloatMatrix & matrix)
{
    for(int i=0; i<matrix.getColumn(); i++)
        for(int j=0; j<matrix.getRow(); j++)
            matrix.ptr[i][j] = matrix.ptr[i][j] * value.getValue();
}
И в FloatMatrix.cpp подключил
C++
1
#include "floatClass.h"
Но возникают ошибки типа:
C++
1
2
Ошибка  1   error C2255: friend: не допускается вне определения класса  c:\documents and settings\admin\рабочий стол\5\5\floatmatrixclass.h 27
Ошибка  8   error C2248: FloatMatrix::ptr: невозможно обратиться к private член, объявленному в классе "FloatMatrix"    c:\documents and settings\admin\рабочий стол\5\5\floatmatrixclass.cpp   217
Подскажите пожалуйста, как правильно связать логику этой функции с файлами?(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru