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

friend не видит приватные поля - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Помогите с компилятором http://www.cyberforum.ru/cpp-beginners/thread345857.html
Вечер добрый... Помогите советом. Не могу скопилировать программу. Использую для этого Dev C++. Когда пробую компилировать, выходит куча ошибок. Мол не найдены такие то сякие библиотеки и так далее.. Как можно решить эту проблему? Может использовать какой нибудь другой компилятор? Чем пользуются профессионалы?
C++ Описание двух "пересекающихся" классов Как сделать два класса в которых методы используют параметры с типами друг-друга class c1 { public: int param; int method(c2 param); }; class c2 { public: int param; int method(c1 param) { return param.param; } http://www.cyberforum.ru/cpp-beginners/thread345849.html
Как правильно? C++
Совершать итерацию, по куску памяти выделенному в куче? например int* t = new int ; Как перемещаться. С каким шагом? Или struct S { int a;
C++ Текст из одного файла перенести в другой текстовый файл
текст из одного файла перенести в другой текстовый файл, кто может напишите листинг программы чтоб выполняло это условие заранее спасибо
C++/CLI WinForms Обмен данными между TextBox и DataGridView http://www.cyberforum.ru/cpp-beginners/thread345828.html
Здравствуйте. При создании программы появилась проблема: программу делаю через Windows Form, на форме есть компонент DataGridView1, TextBox1, и 2 кнопки Button1 и Button2 Необходимо сделать так чтобы при нажатии Button1 текст из DataGridView1 записывался в TextBox1 (это сделал) и при нажатии на Button2 текст находящийся в TextBox1 по строкам добавлялся в DataGridView1. Программный код...
C++ Непонятная рекурсия Привет всем! нужна небольшая помощь в разьяснении кода. Дано задание составить прогу: y=3+6+9+..3*N - составить программу через рекурсию. Дали исходный код, он работает. Но хотелось бы понять точную мысль его работы. Почему он написан именно так, и можно ли написать как-то по другому. ... #include <stdio.h> #include <conio.h> #include <math.h> float function(int n) подробнее

Показать сообщение отдельно
Enfernuz
 Аватар для Enfernuz
22 / 22 / 1
Регистрация: 11.04.2011
Сообщений: 67
27.08.2011, 17:33     friend не видит приватные поля
Всем привет.
Возникла проблема. Есть такой header
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <windows.h>
#include <windowsx.h>
 
class Intercept;
class Dot
{   
    private:
        FLOAT X,Y,Z;
    public:
        Dot(FLOAT, FLOAT, FLOAT);
        ~Dot(){};       //default destructor
        Dot operator-(const Dot&) const;
        friend static FLOAT Intercept::scalarProduct(const Dot&, const Dot&);
                ...
};
 
class Intercept
{
public:
    inline static FLOAT scalarProduct(const Dot&, const Dot&);
        ...
};
В .cpp пишу:
C++
1
2
3
4
5
6
7
8
9
#include "Intercept.h"
#include <math.h>
 
inline Dot Intercept::vectorProduct(const Dot& A, const Dot& B)
{
    return Dot(A.X * B.Z - A.Z * B.Y, A.Z * B.X - A.X * B.Z, A.X * B.Y - A.Y * B.X);
}
 
...
Компилятор выдаёт следующие ошибки:
При объявлении friend-функции в классе Dot: " error C2027: use of undefined type 'Intercept' ", хотя я сделал предварительное объявление класса Intercept.
В теле метода Intercept::vectorProduct(...): " error C2248: 'Dot::X' : cannot access private member declared in class 'Dot' ".
Ну и до кучи им вторит IntelliSense: " IntelliSense: member "Dot::Z" is inaccessible "
И такие ошибки для всех трёх полей (X, Y и Z) класса Dot.
Что не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru