Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Классы - C++

08.02.2011, 22:15. Просмотров 396. Ответов 5
Метки нет (Все метки)

Всем доброго времени суток, кто поможет реализовать след пункты:
-конструктор без аргументов:
-конструктор инициализации:
-конструктор копирования:
-конструктор с использованием списка инициализации:
-деструктор:
-константный объект класса:
-создать константные функции ввода0вывода и функцию get:
-осуществить отделение интерфейса от реализации:
-продемонстрировать работу указателя this:

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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include<iostream.h>
#include<math.h>
 
class Triangle
{   double a,b,c;
    double x[3];
public:
    void init(double,double,double);
    double S(double a,double b,double c);
    double P(double a,double b,double c);
    void read();
    void display();
    double H(double a,double b,double c);
    double VID(double a,double b,double c);
    
};
    void Triangle::init(double a,double b,double c)
{   
    a=x[0];
    b=x[1];
    c=x[2];
    if((a+b)<c|| (a+c)<b || (c+b)<a)
    cout<<"TaKOrO TPEYrOJIbHUKA HE CYIILECTBYET!!!!! "<<endl;
    if((a+b)==c||(c+b)==a||(a+c)==b)
    cout<<"TaKOrO TPEYrOJIbHUKA HE CYIILECTBYET!!!!! "<<endl;
}
double Triangle::S(double a,double b,double c)
{ double s=0, pp=0;
    a=x[0];
    b=x[1];
    c=x[2];
 
pp=(x[0]+x[1]+x[2])/2;
s=pp*(pp-x[0])*(pp-x[1])*(pp-x[2]);
cout<<"IIJOIILAgb gAHHOro TPUYrOJIbHUKA "<<endl;
cout<<"s= "<<sqrt(s)<<endl;
return sqrt(s);
    
}
double Triangle::P(double a,double b,double c)
{ 
    double p=0;
    a=x[0];
    b=x[1];
    c=x[2];
    cout<<"IIEPUMETP gAHHOro TPUYrOJIbHUKA "<<endl;
    p=x[0]+x[1]+x[2];
 
    cout<<"P= "<<p<<endl;
return p;
}
double Triangle::H(double a,double b,double c)
{
    double h1=0,h2=0,h3=0,s=0,pp=0;
    a=x[0];
    b=x[1];
    c=x[2];
    pp=(x[0]+x[1]+x[2])/2;
s=pp*(pp-x[0])*(pp-x[1])*(pp-x[2]);
 
    h1=2*sqrt(s)/x[0];
    h2=2*sqrt(s)/x[1];
    h3=2*sqrt(s)/x[2];
    cout<<"BbICOTbI K COOTBETCTBYIOIILUM CTOPOHAM"<<endl;
    cout<<"H1= "<<h1<<endl;
    cout<<"H2= "<<h2<<endl;
    cout<<"H3= "<<h3<<endl;
    return(h1,h2,h3);
}
double Triangle::VID(double a,double b,double c)
{   double pi=3.14159;double A1=0,B1=0,C1=0;
double rav=0, ravnb=0,pr=0;
    a=x[0];
    b=x[1];
    c=x[2];
    if(x[0]==x[1] && x[0]==x[2] && x[2]==x[1])
    {
        rav=1;
        cout<<"PABHOCTOPOHHUU"<<endl;
    }
 
    if(x[0]==x[1]||x[1]==x[2]||x[2]==x[0])
    {   ravnb=1;
        if(rav!=1)  cout<<"PABHO6EgPEHHbIU"<<endl;
        
    }
    A1=(x[1]*x[1])+(x[2]*x[2])-(x[0]*x[0])/(2*x[1]*x[2]);
    B1=(x[0]*x[0]+x[2]*x[2]-x[1]*x[1])/(2*x[0]*x[2]);
    C1=(x[0]*x[0]+x[1]*x[1]-x[2]*x[2])/(2*x[0]*x[1]);
    if(A1==0||B1==0||C1==0)
    {   pr=1;
        cout<<"IIP9MOYrOJIbHbIU"<<endl; 
    }
    if(rav!=1 && ravnb!=1 && pr!=1)
        cout<<"TPUYrOJIbHUK CBO6OgHbIU"<<endl;
        return rav,ravnb,pr;
}
void Triangle::read()
{ 
 
for(int i=0;i<3;i++)
cin>>x[i]; cout<<endl;
}
void Triangle::display()
{
cout<<"BBEgUTE CTOPOHbI"<<endl;
}
    
 
void main()
{ 
 Triangle T1;
double a,b,c;
T1.display();
T1.read();
T1.init(a,b,c);
T1.S(a,b,c);
T1.P(a,b,c);
T1.H(a,b,c);
T1.VID(a,b,c);
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2011, 22:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы (C++):

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include &lt;iostream&gt; class Point { public: void SetX(int...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы - C++
Нужно написать программу, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы. Реализовать её нужно в трех...

Наследование, базовые классы и производные классы - C++
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.) - C++
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...

Классы возможностей(Mixin классы) - C++
Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет членов-данных) Т.е. к примеру у нас...

Классы, включающие другие классы - C++
Столкнулся вот с таким кодом: #include &lt;iostream&gt; class Point { public: void SetX(int x) {itsX = x;} void SetY(int y) ...

5
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.02.2011, 22:31 #2
Что конкретно вам здесь непонятно? Конструкторы и деструкторы - те же функции (с небольшими особенностями), написать их не сложнее, чем другие функции. Конструктор копирования и деструктор в этом классе смысла не имеют.
0
Kouris
0 / 0 / 0
Регистрация: 08.02.2011
Сообщений: 3
08.02.2011, 22:41  [ТС] #3
вопрос, почему конструктор копирования и деструктор в этом классе смысла не имеют??
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.02.2011, 22:54 #4
Потому что конструктор копирования здесь и стандартный подойдёт (значения всех элементов будут физически скопированы в другую область памяти). Конструктор копирования стоит реализовывать только в классах, в которых в качестве членов выступают указатели, поскольку в новый класс нужно скопировать не сами указатели (т.е. адреса), а требуется выделить новую область памяти и скопировать в неё значения по адресам, которые хранят указатели, а указатели нового класса установить на эти вновь выделенные области памяти. По той же причине не нужен и деструктор - здесь нечего подчищать, все объекты стадартных типов и автоматически будут удалены.
1
Kouris
0 / 0 / 0
Регистрация: 08.02.2011
Сообщений: 3
08.02.2011, 23:39  [ТС] #5
вот еще подскажи хед файл правильно написан ??
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef TRIANGLE_H
#define TRIANGLE_H
class Triangle
{ 
private:
    double a,b,c;
    double x[3];
pubic:
    void init(double,double,double);
    double S(double a,double b,double c);
    double P(double a,double b,double c);
    void read();
    void display();
    double H(double a,double b,double c);
    double VID(double a,double b,double c);
};
#endif
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.02.2011, 23:41 #6
8 строка: public:
А так - да.
0
08.02.2011, 23:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2011, 23:41
Привет! Вот еще темы с ответами:

классы/дочерние классы/методы - C++
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через GetTip. h файл class Book { protected: char...

Динамические массивы структур;Классы. Класс массивы структур;Классы. Класс динамического массива структур. - C++
Здраствуйте.Помогите с практичкой мое задание 4.3. Строка таблицы данных содержит следующую информацию о владельцах авто: ф.и.о....

КЛАССЫ - C++
Очень нужна помощь!!! подскажите где ошибки: #include &lt;iostream&gt; #include &lt;windows.h&gt; char* Rus(const char* text); using...

Классы в С++ - C++
Ребята, помогите пожалуйста. Я новичок в программировании, а сессия заканчивается. Нужно привести пример класса (С++): описание класса,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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