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

Классы - C++

Восстановить пароль Регистрация
 
Kouris
0 / 0 / 0
Регистрация: 08.02.2011
Сообщений: 3
08.02.2011, 22:15     Классы #1
Всем доброго времени суток, кто поможет реализовать след пункты:
-конструктор без аргументов:
-конструктор инициализации:
-конструктор копирования:
-конструктор с использованием списка инициализации:
-деструктор:
-константный объект класса:
-создать константные функции ввода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);
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2011, 22:15     Классы
Посмотрите здесь:

Классы C++
C++ КЛАССЫ
С++ классы C++
классы C++
Классы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.02.2011, 22:31     Классы #2
Что конкретно вам здесь непонятно? Конструкторы и деструкторы - те же функции (с небольшими особенностями), написать их не сложнее, чем другие функции. Конструктор копирования и деструктор в этом классе смысла не имеют.
Kouris
0 / 0 / 0
Регистрация: 08.02.2011
Сообщений: 3
08.02.2011, 22:41  [ТС]     Классы #3
вопрос, почему конструктор копирования и деструктор в этом классе смысла не имеют??
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.02.2011, 22:54     Классы #4
Потому что конструктор копирования здесь и стандартный подойдёт (значения всех элементов будут физически скопированы в другую область памяти). Конструктор копирования стоит реализовывать только в классах, в которых в качестве членов выступают указатели, поскольку в новый класс нужно скопировать не сами указатели (т.е. адреса), а требуется выделить новую область памяти и скопировать в неё значения по адресам, которые хранят указатели, а указатели нового класса установить на эти вновь выделенные области памяти. По той же причине не нужен и деструктор - здесь нечего подчищать, все объекты стадартных типов и автоматически будут удалены.
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
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.02.2011, 23:41     Классы #6
8 строка: public:
А так - да.
Yandex
Объявления
08.02.2011, 23:41     Классы
Ответ Создать тему
Опции темы

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