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

Два класса, ошибка из-за приватности полей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Введите три числа http://www.cyberforum.ru/cpp-beginners/thread691336.html
Введите три числа. Если они могут быть сторонами равностороннего треугольника, вычислите его площадь и длину высоты. Выведите стороны, площадь и длину высоты в порядке возрастания. заранее благодарен))
C++ Работа с файлами. слова Задание следующее. В существующем типизированном файле, элементами которого являются числа, изменить на заданное число 1 элемент, 5 элемент и K-тый элемент. Новое значение вводится с клавиатуры. Что тут пишу неправильно? #include <iostream> #include <fstream> using namespace std; int main () { ifstream f("hw5file.txt"); int a; int k,x; cin >> k >>x; http://www.cyberforum.ru/cpp-beginners/thread691311.html
C++ Массив, где элементы не повторяются
Очередная задача из учебника Дейтела. Из-за кривого русского перевода не пойму, что я должен сделать. Точнее, я сделал, но смутно подозреваю, что я не так понял задание. Его текст выглядит так: Используйте одномерный массив для решения следующей задачи. Прочитайте 20 чисел, каждое из которых находится в диапазоне от 10 до 100 включительно. После того, как прочли очередное число, напечатайте...
C++ Сравнение трёх чисел
Теоретический вопрос. Драсте. Наткнулся на форуме на эту тему: http://www.cyberforum.ru/pascal/thread32113.html. Пробежался глазами, особо не вчитываясь, грубовато реализовал: #include <iostream> #include <cstdlib> #include <time.h> #include <cstdio> #include <cstring> using namespace std; void answer(int max, int min) {
C++ Дан массив А [N,N] переставить местами А[1,1] и минимальный элемент массива http://www.cyberforum.ru/cpp-beginners/thread691297.html
как написать очень нужна помощь знающих людей помоги пожалуйста
C++ Запуск программы с расширением .сpp с помощью Visual studio 2010 У меня есть файл с текстом программы с расширением .сpp "С++ Source" открываю с помощью Visual studio 2010. Но запустить не получается подробнее

Показать сообщение отдельно
Manco
2 / 2 / 0
Регистрация: 17.09.2012
Сообщений: 34
07.11.2012, 18:01     Два класса, ошибка из-за приватности полей
В двух словх...
Первый класс - координата (широта или долгота), второй класс - корабль, у которого есть номер и координаты.
Компилятор указывает на проблемы в строках 57-62 (int ... is private). Почему? Ведь по идее, хоть мы и используем в классе ship класс angle, но обращение к полям angle идёт через объекты класса angle (a1 и a2). Если в классе angle заменить private на public, всё работает.
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
using namespace std;
int count=0;
class angle
{
    private:
        int grad;
        float min;
        char dir;
    public:
        angle() {}
        angle(int g,float m,char d): grad(g),min(m),dir(d)
        {
            correct(grad,min,dir);
        }
        void correct(int &grad,float &min, char &dir)
        {
            while(min>=60)
            {
                min-=60;
                grad++;
            }
            if((dir=='W'||dir=='E')&&(grad>=180))
            {
                grad=360-grad;
                if(dir=='W') dir='E';
                else dir='W';
            }
            if((dir=='N'||dir=='S')&&grad<=0)
            {
                grad=grad+90;
                if(dir=='N') dir='S';
                else dir='N';
            }
        }
        void output()
        {
            cout<<grad<<'\xF8'<<min<<"' "<<dir<<endl;
        }
        void enterAng()
        {
            cout<<"Enter grad: ";cin>>grad;
            cout<<"Enter mins: ";cin>>min;
            cout<<"Enter direct: ";cin>>dir;
            correct(grad,min,dir);
        }
};
class ship
{
    private:
        angle a1,a2;
        int number;
    public:
        ship() {number=count++;}
        ship(int g1,float m1, char d1,int g2,float m2, char d2)
        {
            a1.grad=g1;
            a1.min=m1;
            a1.dir=d1;
            a2.grad=g2;
            a2.min=m2;
            a2.dir=d2;
            number=count++;
        }
        void info()
        {
            cout<<"Ship N'"<<number<<"."<<endl;
            cout<<"Koords:"<<endl;
            a1.output();
            cout<<"    ";
            a2.output();
        }
        void set_koord()
        {
            a1.enterAng();
            a2.enterAng();
        }
 
};
int main()
{
    ship s1(134,35.4,'W',21,45.7,'S'),s2;
    s2.set_koord();
    s1.info();
    s2.info();
 
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru