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

Проблемы с наследованием классов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа небольшой части кода http://www.cyberforum.ru/cpp-beginners/thread871122.html
Здравствуйте! Объясните, пожалуйста, подробно выделенный фрагмент кода, как работает цикл "фор", то что объявляются переменные типа int я вижу, дальше идёт остаток от деления (зачем оно там, поясните плиз), дальше идет операция XOR, а дальше Serial= остача от деления (зачем) и зачем там if? #include "stdafx.h" #include "string.h" #include <iostream> using namespace std; char*...
C++ Динамическое дерево Помогите, пожалуйста, организовать поиск в телефонном справочнике на базе динамического дерева! http://www.cyberforum.ru/cpp-beginners/thread871114.html
Функции. Заменить в строке S1 первое вхождение строки S2 на S3 C++
Доброго времени суток! Крайне необходима помощь экспертов в С++! Кто может - не оставьте меня в беде))) Вот задания: 1. Даны три строки: S1, S2, S3. Заменить в строке S1 первое входжение строки S2 на S3. Во всех нужно написать свои ф-ции... Если возможно написать коды как можно более простым языком - буду весьма признательна! Заранее благодарю за любую помощь!
Преобразование строки сначала в верхний регистр, потом в нижний C++
Напишите программу, которая преобразовывает все символы введенной строки сначала в верхний регистр затем в нижний регистр а затем заменяет первые 2 символа звездочками ( чтобы читался в DEV )
C++ Не выходит сортировка http://www.cyberforum.ru/cpp-beginners/thread871097.html
Я написала код, но сортировка по убыванию у меня выходить не правильная. Оно сортирует только 1 столбец, а не всю строку данных таблицы, из-за чего в результате вся таблица(в меню кнопка 5) выводится неправильно. Подскажите, что надо исправить #include<iostream> #include <string.h> #include <iomanip> #include <conio.h> #include <fstream> using namespace std; const int n=2;
C++ Работа с файлом. посчитать количество символов в строках и отцентрировать Имеется файл input.txt . В каждой строке может быть не более 80 символов. нужно Посчитать количество символов в каждой строчке, для того, чтобы отцентрировать каждую строку (Добавить пробелов слева, чтобы сделать ее по центру). В output.txt вывести отцентрированный файл. подробнее

Показать сообщение отдельно
kukhtikov
2 / 2 / 0
Регистрация: 16.12.2012
Сообщений: 97

Проблемы с наследованием классов - C++

20.05.2013, 00:56. Просмотров 352. Ответов 1
Метки (Все метки)

1-е задание:
Кликните здесь для просмотра всего текста

Создать класс базовый класс «вещественное число».
Элементы класса (поля имеют статус доступа protected):
поле, задающее значение числа;
конструктор для инициализации поля;
метод для вычисления модуля числа и его печати.
Создать производный класс «комплексное число».
Элементы класса:
дополнительно поле, задающее значение мнимой части числа;
конструктор для инициализации полей;
переопределенный метод для вычисления модуля числа и его печати (модуль числа – корень квадратный из суммы квадратов вещественной и мнимой частей числа).
Создать по 1 объекту каждого из классов. Объявить переменную - указатель, имеющею тип базового класса, вначале настроить ее на объект базового класса, вызвать метод базового класса через указатель на объект. Затем настроить ее на объект производного класса, вызвать метод производного класса через указатель на объект.

Код:
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <math.h>
#include <Windows.h>
#include <iostream>
#include <conio.h>
using namespace std;
 
class vesh_chis
{
protected:
    double x;
public:
    vesh_chis()
    {
        this->x=0;
    }
    vesh_chis(double a)
    {
        this->x=a;
    }
    double mnim()
    {
        return abs(x);
    }
    void print()
    {
        cout << "Модуль числа :" << mnim() << endl;
        return;
    }
};
 
class comp_chis : public vesh_chis
{
    protected:
    double y;
public:
    comp_chis()
    {
        this->y=0;
    }
    comp_chis(double a, double b) : vesh_chis()
    {
        this->x=a;
        this->y=b;
        
    }
    double ob()
    {
        return sqrt(x*x+y*y);
    }
    void Print()
    {
        cout << "Модуль вещественного и мнимого числа :" << ob() << endl;
        return;
    }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    setlocale (LC_ALL, "rus");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    double x1, y1;
    cout << "Введите число: ";
    cin >> x1;
    cin.sync();
    vesh_chis D1(x1), *d1;
    d1=&D1;
    d1->print();
    cout << endl << endl;
    comp_chis D2(x1, y1), *d2;
    d1=&D2;
    d1->print();
    d2=&D2;
    d2->Print();
    getch();
    return 0;
}

Скажите пожалуйста, в чем ошибка?

2-е задание:
Кликните здесь для просмотра всего текста

Создать класс базовый класс «вектор на плоскости».
Элементы класса (поля имеют статус доступа protected):
поля, задающие координаты точки, определяющей конец вектора (начало вектора находится в точке с координатами 0, 0);
конструктор для инициализации полей;
метод для печати координат вектора.
Создать производный класс «вектор в трехмерном пространстве».
Элементы класса:
дополнительное поле, задающее дополнительную координату;
конструктор для инициализации полей;
переопределенный метод для печати координат вектора.
Создать по 1 объекту каждого из классов. Объявить переменную - указатель, имеющею тип базового класса, вначале настроить ее на объект базового класса, вызвать метод базового класса через указатель на объект. Затем настроить ее на объект производного класса, вызвать метод производного класса через указатель на объект.

Код:
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <Windows.h>
#include <locale.h>
#include <string.h>
#include <iostream>
using namespace std;
 
class vekt_na_pl
{
protected:
    double x, y;
public:
    vekt_na_pl()
    {
        this->x=0;
        this->y=0;
    }
    vekt_na_pl(double a, double b)
    {
        this->x=a;
        this->y=b;
    }
    void print()
    {
        cout << "Начальные координаты: x[0]=0, y[0]=0" << endl;
        cout << "Конечные координаты: x[1]=" << x << " y[1]=" << y << endl;
        return;
    }
};
 
class vekt_v_pr : public vekt_na_pl
{
    protected:
    double z;
public:
    vekt_v_pr()
    {
        this->z=0;
    }
    vekt_v_pr(double a, double b, double c) : vekt_na_pl()
    {
        this->x=a;
        this->y=b;
        this->z=c;
    }
    
    void Print()
    {
        cout << "Начальные координаты: x[0]=0, y[0]=0, z[0]=0" << endl;
        cout << "Конечные координаты: x[1]=" << x << "  y[1]=" << y << " z[1]=" << z << endl;
        return;
    }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "rus");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    double x1, y1, z1;
    cout << "Введите x[1]: ";
    cin >> x1;
    cin.sync();
    cout << "Введите y[1]: ";
    cin >> y1;
    cin.sync();
    vekt_na_pl D1(x1, y1), *d1;
    d1=&D1;
    d1->print();
    cout << endl << endl;
    cout << "Введите z[1]: ";
    cin >> z1;
    cin.sync();
    vekt_v_pr D2(x1, y1, z1), *d2;
    d1=&D2;
    d1->print();
    d2=&D2;
    d2->Print();
    system("pause");
    return 0;
}

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