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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
p1ggy
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 12
#1

Класс, конструктор, деструктор, дружественные функции - C++

01.11.2012, 12:44. Просмотров 965. Ответов 2
Метки нет (Все метки)

Нужна помощь с ООП. Вот задание:

Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в динамической области памяти.
Конструктор для их создания (операция new) и установки их начальных значений: Х();
деструктор: ~Х();
friend – функция печати: friend void print();
функция, решающая поставленную задачу: friend Void Run().
Код методов и функций – вне пространства определения класса.

1) Подскажите верно ли я интерпретировал данное задание?
2) Вроде бы теорию перечитываю, но не могу понять как заставить одну дружественную функцию видеть вторую. По сути функция run() выполняется верно, однако при вызове print () выводиться длина типа Double. Т.е. ответ где-то теряется... Не могу найти нужную информацию, помогите пожалуйста.
Вот код:

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
#include <iostream>
using namespace std;
#include <math.h>
#include <stdlib.h>
#include <conio.h>
class myClass
{
    private:
    double x,y,z,b;
    public:
    myClass (void)
{
    cout << "Please, input x.." << endl;
    cin >> x;
    cout << "Please, input y.." << endl;
    cin >> y;
    cout << "Please, input z.." << endl;
    cin >> z;
};
 
    friend void print(myClass);
    friend void run(myClass);
 
    ~myClass() {};
};
 
void run(myClass a)
{
    a.b = sqrt(10*(pow(a.x,1*1.0/3)+pow(a.x,a.y+2)))*(pow(asin(a.z),2)-fabs(a.x-a.y));
}
 
void print(myClass a)
{
    cout << "Your rezult: b = " << a.b << endl;
}
 
int main()
{
    myClass *lab3;
    lab3 = new myClass;
    run(*lab3);
    print(*lab3);
    delete lab3;
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2012, 12:44     Класс, конструктор, деструктор, дружественные функции
Посмотрите здесь:

Класс: конструктор и деструктор C++
Преобразование типов. Дружественные функции. Конструктор копирования. C++
Класс "Матрица": конструктор, деструктор и перегрузка операторов C++
конструктор и деструктор в C++ C++
C++ Создать любой класс. Реализовать конструктор, деструктор, продемонстрировать работу
C++ конструктор и деструктор
Разработать класс Airplane (самолет). Определить конструктор и деструктор. Реализовать объявленные методы доступа к данным. C++
C++ Конструктор и деструктор
C++ С++. Конструктор, деструктор
C++ Конструктор, деструктор, friend-функции. Исправить ошибки
C++ Класс матрица (дружественные функции)
C++ Добавить в класс хотя бы один конструктор и деструктор

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
01.11.2012, 12:51     Класс, конструктор, деструктор, дружественные функции #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
    friend void print(const myClass&);
    friend void run(myClass&);
 
void run(myClass& a)
{
    a.b = sqrt(10*(pow(a.x,1*1.0/3)+pow(a.x,a.y+2)))*(pow(asin(a.z),2)-fabs(a.x-a.y));
}
 
void print(const myClass& a)
{
    cout << "Your rezult: b = " << a.b << endl;
}
p1ggy
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 12
02.11.2012, 01:15  [ТС]     Класс, конструктор, деструктор, дружественные функции #3
Спасибо, все получилось верно! Но все равно остался вопрос: в полной мере ли мой код выполняет поставленную задачу?
Yandex
Объявления
02.11.2012, 01:15     Класс, конструктор, деструктор, дружественные функции
Ответ Создать тему
Опции темы

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