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

наследование, фунция main - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разделение файла "по чесному" http://www.cyberforum.ru/cpp-beginners/thread583235.html
Здравствуйте. Вопрос такой: Имеется файл определенного размера который вести 80 байт. Так же имеются функции которым нужнопередовать какую часть файла им обрабатывать. Вопрос в том как чесно разделить файл между функциями(обрабатывать только по 10байт). Количество функций задается. Сколько частей обрабатывать тоже. Например: файл 80 байт. функций 3. если разделить между данными функциями...
C++ xor, not кто может помочь с операциями ^(xor) и -(not). если можно навести примеры с реальными числами что они делают, например 2^3 или что-то вроде. Или киньте ссылку на ресурс где данное можно Доступно прочесть. http://www.cyberforum.ru/cpp-beginners/thread583215.html
C++ Struct в управляемых классах
Всем привет, возник вопрос как использовать стуктуры в управляемых классах? Спасибо!
C++ Запись структуры в файл
Как записать отсортированную структуру обратно в файл? fwrite не катит. f=fopen("d:\\gai2.txt","rb+"); system("cls"); fflush(stdin); while(fread(&st,sizeof(st), 1, f)) for(i=0;i<sttt.r-1;i++) if(strcmp(st.FIO,st.FIO)>0) {stt=st; st=st; st=stt;
C++ Даны три массива. Выдать элементы, которые встречаются только в одном из них http://www.cyberforum.ru/cpp-beginners/thread583195.html
Нужен код на с++ помогите не получается различные ошибки Даны три массива. Выдать элементы, которые встречаются только в одном из них.
C++ функция проверки правильности написания адреса почты (под DevC++ Написать функцию проверки правильности написания адреса почты. Функция возвращает указатель на переданную в неё строку с адресом почты, если адрес почты написан правильно, иначе возвращает NULL. char * email_validator(int email_length, char * email) нужно скомпилировать на DevC++ подробнее

Показать сообщение отдельно
tarakano
34 / 26 / 5
Регистрация: 24.12.2010
Сообщений: 164
23.05.2012, 00:34  [ТС]     наследование, фунция main
Цитата Сообщение от DU Посмотреть сообщение
ну в базовый класс добавте еще одну чисто виртуальную функцию virtual bool validate() const = 0; в наследниках напишите соответствующую проверку. тогда функцию принт можно будет дополнить. звать сперва эту validate и если она вернет false, выводить сообщение какое-нибудь, если же треугольник корректный, то выводить периметр и площать как сейчас.
получается вот так? чего не хватает?
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include <iostream>
#include <cmath>
 
//-----------------------------------------------------------------------------
 
class Triangle
{
public:
    int a,b,t;
    virtual double area() const = 0;
    virtual double perimeter() const = 0;
     virtual bool validate() const = 0;
};
 
//-----------------------------------------------------------------------------
 
class Priamoygolni: public Triangle
{
public:
    Priamoygolni( double a = 2, double b=3, double t =1.57 ):
    _radius(radius)
    {
    }
 
    void set_a(double a)
    {
        _a = a;
    }
 
    void set_b(double b)
    {
        _b = b;
    }
    void set_t(double t)
    {
        _t = t;
    }
    
  virtual bool validate() 
  { if t=1.57 then 
  validate=1
  else validate=0
  }
 
    virtual double area() const
    {
        return _a*_b/2;
    }
 
    virtual double perimeter() const
    {
        return _a+_b+sqrt(_a*_a+_b*_b);
    }
 
 
//-----------------------------------------------------------------------------
 
class Ravnobedreni: public Triangle
{
public:
    Ravnobedreni(double a = 1, double b = 1, double t = 0.4):
    _a(a),
    _b(b),
    _t(t)
    {
         
    virtual void print() const
    {
        std::cout << "a = " << _a << "\tb = " << _b << "\tt = " << _t << std::endl;
    }
    
  virtual bool validate() 
  { if _a=_b then 
  validate=1
  else validate=0
  }
    virtual double area() const
    {
        double _c=2*_b*sin(t/2)
        double p = (_a + _b + _c) / 2.0;
 
        return sqrt(p * (p - _a) * (p - _b) * (p - _c));
    }
 
    virtual double perimeter() const
    {
        return _a + _b + _c;
    }
 
private:
    double _a;
    double _b;
    double _t;
    double _c;
};
 
//-----------------------------------------------------------------------------
 
class Ravnostoroni: public Triangle
{
public:
    Ravnostoroni(double a = 2, b=2, t=1.047):
    _a(a)
    _b(b)
    _t(t)
    {
    }
 
    void set_a(double a)
    {
        _a = a;
    }
     void set_b(double b)
    {
        _b = b;
    }
    void set_t(double t)
    {
        _t = t;
    }
 
    
  virtual bool validate() 
  { if a=b=c then 
  validate=1
  else validate=0
  }
    virtual void print() const
    {
        std::cout << "a = " << _a << std::endl;
        std::cout << "b = " << _b << std::endl;
        std::cout << "t = " << _t << std::endl;
    }
 
    virtual double area() const
    {
        return 0.43*_a * _a;
    }
 
    virtual double perimeter() const
    {
        return 3 * _a;
    }
 
private:
    double _a;
    double _b;
    double _t;
};
 
//-----------------------------------------------------------------------------
 
void Print(Triangle& triangle)
{
   std::cout << "area = " << triangle.area() << std::endl;
   std::cout << "perimetr = " << triangle.perimetr() << std::endl;
}
 
int main()
{
    Triangle1 tr1;
    Triangle2 tr2;
    Triangle3 tr3;
 
    Print(tr1);
    Print(tr2);
    Print(tr3);
 
    return 0;
}
 
Текущее время: 18:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru