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

Вопрос про friend - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Statiс Поля Класса http://www.cyberforum.ru/cpp-beginners/thread339337.html
Имея класс class Worker { static const int Part2 = 0x22; static const int Part3 = 0x44; public: static int Part1; int part1(){return Part1;} // не могу обратиться к полю int part2(){return Part2;} int part3(){return Part3;}
C++ игра галактика здравствуйте!Решил написать игру галактика(в консоле).Подскажите примерный алгоритм написания(раньше игры в консоле не писал) http://www.cyberforum.ru/cpp-beginners/thread339335.html
C++ Проверка орфографии
Нужно написать маленькое приложение по проверке орфографии, которое сверяет введённое слово с словарём (файл dictionary.txt) и если слово написано правильно выводит уведомление об этом. Иначе пишет что слово было написано неправильно и пытается найти другие похожие слова (методом обмена местами двух букв в слове из словаря и дальнейшей сверкой со словом для поиска). Но что-то работает мой...
Выбор кода для компиляции на основании сравнения параметров шаблона C++
Здравствуйте. Помогите, пожалуйста, разобраться со следующим вопросом. Необходимо выбирать компилируемый код в зависимости от какого-либо условия. Для примера рассмотрим следующую функцию: template <int p> int MyFunc() { #if (p < 0) return -1; #elif (p > 0) return 1; #else
C++ int/double переводим в строку (string) http://www.cyberforum.ru/cpp-beginners/thread339291.html
Добрый день. помогите пожалуйста перевести число int и double в строку string (ну или char*) преобразование из строки в число (функциями atoi и atof) прочитал в http://www.cyberforum.ru/cpp-beginners/thread338915.html а вот обратное действие не могу придумать я щаз нашел способ тока так: std::string timeS = ""; char temp ;
C++ Что означает сточка ::CoInitialize(NULL); ? Привет, совсем небольшой вопрос, буду признателен за ответ: (я начинающий в C++, и пытаюсь разобраться в языке на основе рабочих примеров кода. Этот кусок взят из кода, создающего экселевский файл) Вопрос: Что означает сточка ::CoInitialize(NULL); ? //часть кода: int main() подробнее

Показать сообщение отдельно
Ree.exe
56 / 56 / 4
Регистрация: 01.08.2011
Сообщений: 141
05.08.2011, 16:57     Вопрос про friend
Вот мой код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<iostream>
using namespace std;
class Bottle;
class Carton
{
public:
    Carton(const Bottle& xBottle)
    {
        m_X = xBottle.m_H;
        m_Y = 3 * xBottle.m_A;
        m_Z = 3 * xBottle.m_Z;
    }
    void Print()
    {
        cout<<"Габаритные размеры коробки для бутылок :) X:Y:Z"<< m_X << ":"<< m_Y << ":" << m_Z
            <<endl;
    }
protected:
    int m_X;
    int m_Y;
    int m_Z;
};
/////////////////
class Bottle
{
public:
    Bottle(int a, int x):
      m_A(a), m_H(x)
      {
      }
protected:
    int m_A;
    int m_H;
    friend Carton::Carton(const Bottle& X);
};
typedef Bottle Botl;
typedef Carton Cart;
int main()
{
    setlocale(LC_ALL,"");
    Botl a(4,4);
    Cart s(a);
    s.Print();
}
Вродебы всё правильно.
Но компилятор ругается

1>c:\documents and settings\user\мои документы\visual studio 2010\projects\784\784\1.cpp(11): error C2027: использование неопределенного типа "Bottle"
1> c:\documents and settings\user\мои документы\visual studio 2010\projects\784\784\1.cpp(3): см. объявление "Bottle"
1>c:\documents and settings\user\мои документы\visual studio 2010\projects\784\784\1.cpp(11): error C2228: выражение слева от ".m_H" должно представлять класс, структуру или объединение
1>c:\documents and settings\user\мои документы\visual studio 2010\projects\784\784\1.cpp(12): error C2027: использование неопределенного типа "Bottle"
1> c:\documents and settings\user\мои документы\visual studio 2010\projects\784\784\1.cpp(3): см. объявление "Bottle"
1>c:\documents and settings\user\мои документы\visual studio 2010\projects\784\784\1.cpp(12): error C2228: выражение слева от ".m_A" должно представлять класс, структуру или объединение
1>c:\documents and settings\user\мои документы\visual studio 2010\projects\784\784\1.cpp(13): error C2027: использование неопределенного типа "Bottle"
1> c:\documents and settings\user\мои документы\visual studio 2010\projects\784\784\1.cpp(3): см. объявление "Bottle"
1>c:\documents and settings\user\мои документы\visual studio 2010\projects\784\784\1.cpp(13): error C2228: выражение слева от ".m_Z" должно представлять класс, структуру или объединение



В чем моя ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru