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

виртуальные функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ остаток от деления http://www.cyberforum.ru/cpp-beginners/thread340589.html
Народ помогите пожалуйста)) в паскале есть такие функции div и mod div - целая часть от деления (модуль) mod -остаток от деления вот я нашел что остаток от деления в с++ это % а вот целую часть найти не могу.. помогите пожалуйста ..заранее благодарен)
C++ C++ как сделать что бы при нажатии на клавишу происходило Например при нажатии стрелочки вверх или шифт выводился текст на экран http://www.cyberforum.ru/cpp-beginners/thread340577.html
Ошибки Code::Blocks, Dev-C++ и wxDev-C++ C++
Ставил на windows 7 все три IDE. проблема одна и та же: простейшая консольная программа #include <iostream> using namespace ::std; int main() { for (int i=1; i<256; i++) cout << i << "\t" << (char) i << endl; return 0; },
строки! C++
всем привет) народ помогите пожалуйста.. я новичек.. начал изучать строки.. и вот столкнулся с такой проблемой чтоб мне создать цикл для работы над строкой мне нужно знать количество символов в строке... например в паскале для этого есть функция length().. так как собственно узнать количество символов в строке в с++? помогите пожалуйста... Зарание благодарен)
C++ Массив класса в классе http://www.cyberforum.ru/cpp-beginners/thread340552.html
Вот код: #include <iostream> using namespace std; class CFirst { public: int m_n; int m_m; CFirst(){} };
C++ Подскажите, в чем ошибка? Вроде все правильно, почему выходит результат "Вы не сдали"? #include <iostream> #include <Windows.h> #include <conio.h> using namespace std; int main(void) { SetConsoleCP(1251); подробнее

Показать сообщение отдельно
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
10.08.2011, 01:57     виртуальные функции
все нормально)
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
#include<iostream.h>
#include<conio.h>
#include<string.h>
enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder};
 
class Body
{   
protected:
    char* Name;
    Shape shape_s;
    float H,So,Sb,Sp,V,p,k;
 
public:
    Body(char* name,Shape s);
    ~Body();
    float get_V();
    virtual void set_H(float H)=0;
    virtual void set_So(float So)=0;
    virtual void set_Sb(float Sb)=0;
    virtual void set_Sp(float Sp)=0;
    void Display();
};
 
Body::Body(char *name,Shape s)
{  
    Name=new char[strlen(name)+1];
    strcpy(Name,name);
    shape_s=s;
    switch(s)
    {
        case prizm:          
            k=1.0;                  
            break;
        case parallelepiped: 
            k=1.0;                  
            break;
        case cube:           
            k=1.0;                  
            break;
        case pyramid:        
            k=1.0/3.0;              
            break;
        case cone:           
            k=1.0/3.0;              
            break;
        case cylinder:       
            k=1.0;                  
            break;
        default:
            cout<<"Неизвестная фигура."; 
            break;
    } 
    if(k!=0){ get_V(); }
}
 
Body::~Body()
{
    delete[]Name;
}
 
float Body::get_V()
{
    float V=So*H*k; 
    return V;
}
 
 
void Body::Display()
{
    cout<<"Имя объекта - "<<Name<<"."<<endl;
    cout<<"Форма объекта - "<<shape_s<<"."<<endl;
    cout<<"Площадь основания равна:                 \tSo="<<So<<endl;
    cout<<"Площадь боковой поверхности равна:       \tSb="<<Sb<<endl;
    cout<<"Площадь полной поверхности равна:        \tSp="<<Sp<<endl;
    cout<<"Объем обекта равен:                      \tV="<<get_V()<<endl;
}
 
class class_prizm:public Body
{   
public:
    class_prizm(char *name,Shape s,float H,float So,float Sb,float Sp):Body(name,s)
    {
        set_H(H);
        set_So(So);
        set_Sb(Sb);
        set_Sp(Sp);
    }
    void set_H(float H){this->H=H;}
    void set_So(float So){this->So=So;}
    void set_Sb(float Sb){this->Sb=Sb;}
    void set_Sp(float Sp){this->Sp=Sp;}
};
вот рабочий код.
кстати насчет наследования на заметку.
Вы в базовом классе объявили переменные в private.
Потом наследуетесь. Но при наследование, у класса наследника не будет этих полей, ибо все что private не наследуется. Поэтому тут лучше использовать protected.
Да и форматируйте код, а то вообще не читабельно.
 
Текущее время: 22:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru