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

классы C++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
26041991
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 8
25.03.2011, 21:42     классы C++ #1
Помогите пожалуйста!!! Срочно нужна помощь
I . Проект должен содержать один файл с расширением *.сср
II.Классы не должны содержать лишних методов!!!

Имеются два класса:
Class A {
Int x;
double y;
public:
.........
};

Class B {
Int x;
public:
.........
};


Дан следующий код:

void F(A ob1,B ob2)
{
if(ob1.x>ob2.Get_x())
cout<<\n x класса А больше, чем х класса В\n;
else
////Дописать реализацию функции самостоятельно
........................
}
void main(void)
{
A ob_a;
B ob_b(-7);
ob_a.show();
ob_b.show();
////////////////Дописать вызов функции F
................
_getch();
}



Это должно быть в окошке visual studio
Класс А

Х=5 у=3.3

Класс В

х=-7

х класса А больше, чем х класса В
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2011, 21:42     классы C++
Посмотрите здесь:

Классы C++
C++ КЛАССЫ
C++ Классы
классы C++
С++ классы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
25.03.2011, 21:45     классы C++ #2
Это должно быть в окошке visual studio
На каком этаже?
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
25.03.2011, 22:19     классы C++ #3
Цитата Сообщение от 26041991 Посмотреть сообщение
if(ob1.x>ob2.Get_x())
Для класса А данные х находятся в привате. Так их не получить. Вы уверены в правильности того, что написали? И используйте пожалуйста теги форматирования кода, не зря же люди старались.

Добавлено через 7 минут
В общем если в классе А тоже нужна функция-геттер, то код будет выглядеть примерно так:
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
#include<conio.h>
#include<iostream>
 
using namespace std;
 
class A
{
    int x;
    double y;
public:
    A();
    void show();
    int Get_x();
};
 
class B
{
    int x;
public:
    B(int X);
    int Get_x();
    void show();
};
 
A::A()
{
    x=5;
    y=3.3;
}
 
void A::show()
{
    cout<<"Класс А\n";
    cout<<"x="<<x<<" "<<"y="<<y<<"\n";
}
 
int A::Get_x()
{
    return x;
}
 
B::B(int X)
{
    x=X;
}
 
void B::show()
{
    cout<<"Класс В\n";
    cout<<"x="<<x<<"\n";
}
 
int B::Get_x()
{
    return x;
}
 
void F(A ob1,B ob2)
{
    if(ob1.Get_x()>ob2.Get_x()) cout<<"\n х для объекта класса А больше чем, х для объекта класса В \n";
    else cout<<cout<<"\n х для объекта класса B больше чем, х для объекта класса A \n";
}
 
void main(void)
{
    setlocale( LC_ALL,"Russian" );
    A ob_a;
    B ob_b(-7);
    ob_a.show();
    ob_b.show();
    F(ob_a,ob_b);
    _getch();
}
26041991
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 8
25.03.2011, 22:29  [ТС]     классы C++ #4
асчёт правильности оно точно так. переменные объявляются в привате. в этом и суть задания. я почемуто считал что нужно зафрендить классы, чтоб иметь доступ в приваты классов между собой
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
25.03.2011, 22:48     классы C++ #5
Цитата Сообщение от 26041991 Посмотреть сообщение
асчёт правильности оно точно так. переменные объявляются в привате. в этом и суть задания. я почемуто считал что нужно зафрендить классы, чтоб иметь доступ в приваты классов между собой
Фун-цию F надо "зафрендить", чтоб можно было
C++
1
2
3
4
void F(A ob1,B ob2)
{
if(ob1.x>ob2.Get_x())
//...
26041991
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 8
25.03.2011, 23:36  [ТС]     классы C++ #6
что-то я попробовал и не очень получилось. Подскажите как правильно зафрендить функцию в данном случае.

Добавлено через 1 минуту
Цитата Сообщение от 26041991 Посмотреть сообщение
что-то я попробовал и не очень получилось. Подскажите как правильно зафрендить функцию в данном случае.
я писал friend void F(A ob1);

friend void F(B ob2);
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.03.2011, 23:37     классы C++ #7
26041991,
C++
1
friend void f(A ob1, B ob2);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2011, 23:49     классы C++
Еще ссылки по теме:

C++ Классы С++
Классы?! C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26041991
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 8
25.03.2011, 23:49  [ТС]     классы C++ #8
Цитата Сообщение от ForEveR Посмотреть сообщение
26041991,
C++
1
friend void f(A ob1, B ob2);
я написал в паблике класса А и в B по очереди. не получилось. пишет что ошибка в строке

if(ob1.x>ob2.Get_x())

Добавлено через 5 минут
Всем огромное спасибо. я нашёл ошибку и всё заработало. было приятно пообщаться
Yandex
Объявления
25.03.2011, 23:49     классы C++
Ответ Создать тему
Опции темы

Текущее время: 23:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru