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

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

Восстановить пароль Регистрация
 
p1ggy
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 12
01.11.2012, 12:44     Класс, конструктор, деструктор, дружественные функции #1
Нужна помощь с ООП. Вот задание:

Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в динамической области памяти.
Конструктор для их создания (операция 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++ Создать любой класс. Реализовать конструктор, деструктор, продемонстрировать работу
Разработать класс Airplane (самолет). Определить конструктор и деструктор. Реализовать объявленные методы доступа к данным. C++
C++ С++. Конструктор, деструктор
C++ Конструктор, деструктор, friend-функции. Исправить ошибки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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     Класс, конструктор, деструктор, дружественные функции
Ответ Создать тему
Опции темы

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