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

C++ Объекты и Классы - запутался - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Передача массива из одной функции в другую, и сложение его элементов. http://www.cyberforum.ru/cpp-beginners/thread570917.html
Здравствуйте, задание: Создать две функции для работы с массивом: • формирование массива трехзначных чисел с помощью датчика случайных чисел и вывода его на экран; • вычисление суммы массива. Имя массива и его размер передаются в функцию в качестве параметров. код: #include "stdafx.h" #include <stdio.h> #include <conio.h>
C++ Найти длину второго слова в строке как найти длину второго слова в строке? http://www.cyberforum.ru/cpp-beginners/thread570910.html
C++ win API увеличение числа
Изучаю в универе win api в BORLAND 5 мне дали задание когда нажимаешь стрелочки вверх(VK_UP) в низ(VK_DOWN) то текст "Привет" поднимается или опускается на 10 пикселей Столкнулся с такой проблемой, делаю так: // задал переменную static int counter=0; // тут реализую case WM_KEYDOWN:
Быстрое деление двух длинных чисел C++
Доброго времени суток! Реализую алгоритм деления длинного числа на длинное из книги Кнута (4.3.1). Числа хранятся в массиве типа int, в каждой ячейке по 3 цифры. Алгоритм в большинстве случаев считает верно только первые цифры частного, в итоге число получается меньше реального частного. Проверяла уже кучу раз, никак не могу найти ошибку. Само частное угадывается правильно, но неверно...
C++ Составить систему тестов и вычислить полученное выражение для нескольких значений http://www.cyberforum.ru/cpp-beginners/thread570871.html
Не могу понять задание помогите Составить систему тестов и вычислить полученное выражение для нескольких значений Х, определить при каких Х выражение не может быть вычислено. //--------------------------------------------------------------------------- #include <vcl.h> #include <conio.h> #include <iostream.h> #include <math.h> #include<dos.h>
C++ Перевод текстовой записи формулу в читаемую функцию. Пишу диплом, в реализации подразумевается генерация и изменение большого числа различных функций. Единственный вариант который я смог подобрать для более менее адекватного алгоритма подразумевает перевод текстовой записи в формулу в математическую, то есть чтобы можно было посчитать значение по формуле из текстового файла для заданного х. Все было бы замечательно, если бы можно было использовать... подробнее

Показать сообщение отдельно
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
11.05.2012, 01:22     C++ Объекты и Классы - запутался
main почти не менял
main.cpp
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
#include <iostream> //potok vvoda vyvoda
#include <string>
#include "GeometricalBody.h"
#include "Hexagonal_Prism.h"
using namespace std;
 
int main()
{
 
    GeometricalBody GB("GB");
 
    Hexagonal_Prism* HP = new Hexagonal_Prism(); // Создаем объект класса Hexagonal_Prism указатель  указывает на этот объект
    GeometricalBody *test = HP; // v roditeljskij klass prisoedinjaem naslednika
    HP->Init(2.5,3.6);
 
    cout << "GetSo: " << HP->GetSo() << "\nGetSb: " << HP->GetSb() << "\nGetSp: " << HP->GetSp() << endl;
 
    HP->SetObjectName("Figura");
 
    cout << " ----------- " << endl;
    HP->print();
    HP->print2();
    cout << " ------- " << endl;
    test->print();
    test->print2();
    cout << " ----------- " << endl;
 
    Hexagonal_Prism H ;
    H.name="test";
        H.print(); H.print2();
 
    //system("PAUSE");
    delete HP; //udalenie objekta
 
    return 0;
}


GeometricalBody.h

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
#ifndef GEOMETRICALBODY_H
#define GEOMETRICALBODY_H
 
#include <string>
#include <iostream> //potok vvoda vyvoda
 
 
//using namespace std;
 
class GeometricalBody
{
public:
    std::string name; //переменная, хранящая наименование объекта этого класса
public:
    inline void print() //для вывода имени объекта и значений вычисленных площадей на экран.
    {
        std::cout << "Parent name: " << name << std::endl;
    }
    inline virtual void print2() //asbtraktnyj klass , dlja pozdeno vjazyvanija (pereopredelenie)
    {
        std::cout << "Virtual void: " << name << std::endl;
    }
    GeometricalBody(const std::string &str_name):name(str_name){}
 
    GeometricalBody():name("default name"){}
 
 
 
};
 
#endif // GEOMETRICALBODY_H


Hexagonal_Prism.h

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
#ifndef HEXAGONAL_PRISM_H
#define HEXAGONAL_PRISM_H
 
#include <iostream>
#include <string>
#include "GeometricalBody.h"
#include <cmath>
using std::string;
using std::cout;
using std::endl;
class Hexagonal_Prism: public GeometricalBody //nasledovanie
{
public:
    string name;
    double r;// radius i visota
    double h; //переменная хранящая наименование объекта этого класса.
public:
 
    void SetObjectName(const string &objName) //Для присвоения имени объекту класс содержит функцию SetObjectName
    {
        name = objName;
    }
 
    void Init(const double &rInit, const double &hInit) //для инициализации членов-данных класса
    {
        this->r = rInit;
        this->h = hInit;
    }
    double GetSo() // plowadj osnovanija
    {
        return (3*(sqrtf(3/2))*(pow(r, 2)));
    }
    double GetSb() // plowadj bokovaja
    {
        return ((6*r)*h);
    }
    double GetSp() // plowadj polnaja
    {
        return (2*GetSo() + GetSb());
    }
    void print() //для вывода имени объекта
    {
        cout << "Child name: " << this->name << endl;
    }
    void print2() //dlja pozdnego svjazyvanija (dimani4eskoe svjazyvanie)
    {
        cout << "Virtual override: " << this->name << endl;
    }
};
 
#endif // HEXAGONAL_PRISM_H


с объявлением и определением класса вы явно запутались)
я все что у было в .cpp сунул в .h c некоторыми доделками.
если будут вопросы, спрашивайте.

Добавлено через 7 минут
Так на будущее, если расбрость класс как полагается это выглятело бы примерно так:
пример
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
//GeometricalBody.h
#ifndef GEOMETRICALBODY_H
#define GEOMETRICALBODY_H
 
#include <string>
 
class GeometricalBody
{
public:
    std::string name; //переменная, хранящая наименование объекта этого класса
public:
    void print() ;
    virtual void print2();
    GeometricalBody(const std::string &str_name):name(str_name){}
 
    GeometricalBody():name("default name"){}
};
 
#endif // GEOMETRICALBODY_H
 
//GeometricalBody.cpp
#include <iostream>
#include "GeometricalBody.h"
void GeometricalBody::print() //для вывода имени объекта и значений вычисленных площадей на экран.
{
    std::cout << "Parent name: " << name << std::endl;
}
 
void GeometricalBody::print2() //asbtraktnyj klass , dlja pozdeno vjazyvanija (pereopredelenie)
{
    std::cout << "Virtual void: " << name << std::endl;
}
 
Текущее время: 18:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru