Форум программистов, компьютерный форум, киберфорум
Наши страницы

Беда с наследованием. Организация многофайлового приложения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не получается записать систему уравнений! http://www.cyberforum.ru/cpp-beginners/thread1171694.html
Нужно записать и решить систему уравнений. Возникли затруднения при записи, не могу сообразить как довести всё до ума! Буду благодарен за помощь! #include<iostream>" #include<math.h> using...
C++ Сортировать слова по количеству букв (по возрастанию) Задано строку из трех слов. Выделить отдельные слова и записать их в массив, рассортировав по количеству букв (по возрастанию). Вывести массив слов на экран. написал програму, но она не сортирует,... http://www.cyberforum.ru/cpp-beginners/thread1171689.html
Деструктор класса. Как правильно очистить память? C++
Добрый день! Написал прогу бинарного дерева поиска, все работает, но нужен совет как убрать за собой, тобесь очистить память во избежания утечек. Сам пытался писать delete в деструторе, но толку не...
Алгоритм Флойда-Уоршелла C++
Можно ли переделать алгоритм так, что бы он выдавал не только кратчайший путь, но и указывал через какие вершины графа он проходит? Допустим есть готовая матрица смежности, ввести начальную и...
C++ Программа для работы с перемешанной таблицей, использующей перемешивание сложением, по запросам оператора http://www.cyberforum.ru/cpp-beginners/thread1171648.html
Вообщем народ такая беда у меня есть задание состоящие из двух частей, с первой проблем с частью А нет все норм. А вот со второй маленький косяк, двоичный файл не создается и даже не открывается....
C++ Ошибка : " L Buffer is too small & & 0" Здравствуйте. У меня возникла странная проблема: в недалеком прошлом рабочая программа начала выдавать ошибку: " L Buffer is too small & & 0". Не нравиться ей 30 строка, но там ничего важного нет.... подробнее

Показать сообщение отдельно
Lynatik001
38 / 32 / 4
Регистрация: 28.09.2012
Сообщений: 620

Беда с наследованием. Организация многофайлового приложения - C++

10.05.2014, 21:11. Просмотров 311. Ответов 6
Метки (Все метки)

Вот написал такое вот чудо, работает если за коментировать любой из #include "kvadrat.h" #include "kolo.h" и соотвецтвенно их исполнения. Тоесть по отдельности все работает. А вот когда оба инклюдю идут куча ошибок. Думаю из за того что тут инклюдятся оба раза функции с основного класса или в чем проблема не пойму(
Может кто объяснить?
Вот код
l2.1.11.c++.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include "kvadrat.h"
#include "kolo.h"
int _tmain(int argc, _TCHAR* argv[])
{
    figure *kvad = new kvadrat(1,2,3,4);
    kvad->plosha();
    kvad->perimeter();
 
    figure *kol = new kolo(1,2,3,4);
    kol->plosha();
    kol->perimeter();
    return 0;
}

figure.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <string>
#include <iostream>
#include <math.h>
using namespace std;
class figure{
public:
         double x1;
         double x2;
         double y1;
         double y2;
         figure(double x1, double x2, double y1, double y2);
         figure();
         double doljina();
         virtual double plosha();
         virtual double perimeter();
};
figure.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
#include "stdafx.h"
#include "figure.h"
         figure::figure(double x1, double x2, double y1, double y2)
        {
            this->x1 = x1;
            this->x2 = x1;
            this->y1 = y1;
            this->y2 = y2;
        }
         figure::figure()
        {
 
        }
         double figure::doljina()
        {
             return sqrt((pow(x1 - x2, 2) + pow(y1 - y2, 2)));
        }
         double figure::plosha(){
             cout << "pustota" << endl;
             return 0;
         }
         double figure::perimeter(){
             cout << "pustota" << endl;
             return 0;
         }
kvadrat.h
C++
1
2
3
4
5
6
7
8
#include "figure.h"
 
class kvadrat : public figure {
public:
         kvadrat(double x1, double x2, double y1, double y2) ;
         double plosha();
         double perimeter();
    };
kvadrat.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include "kvadrat.h"
        kvadrat::kvadrat(double x1, double x2, double y1, double y2) 
        {
            this->x1 = x1;
            this->x2 = x2;
            this->y1 = y1;
            this->y2 = y2;
        }
         double kvadrat::plosha()
        {
            double pl = pow(doljina(),2);
            cout << endl << "plosha  kvadrata = " << pl << endl;
            return pl;
        }
         double kvadrat::perimeter()
        {
            double dol = doljina() + doljina() + doljina() + doljina();
            cout << endl << "perimeter  kvadrata = " << dol << endl;
            return dol;
        }
kolo.h
C++
1
2
3
4
5
6
7
8
#include "figure.h"
class kolo : public figure{
public:
         kolo(double x1, double x2, double y1, double y2) ;
         double plosha();
         double perimeter();
         double radius();
};
kolo.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
#include "stdafx.h"
#include "kolo.h"
        kolo::kolo(double x1, double x2, double y1, double y2) 
        {
            this->x1 = x1;
            this->x2 = x2;
            this->y1 = y1;
            this->y2 = y2;
        }
        double kolo::radius()
        {
            return 2/(x2-x1);
        }
         double kolo::plosha()
        {
            double pl = 3.14 * pow(radius(),2);
            cout << endl << "plosha  kola = " << pl << endl;
            return pl;
        }
         double kolo::perimeter()
        {
            double per = 2 * 3.14 * radius();
            cout << endl << "perimeter  kola = " << per << endl;
            return per;
        }
вот ошибки на всякий
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\figure.h(6): error C2011: 'figure' : 'class' type redefinition
1>          c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\figure.h(6) : see declaration of 'figure'
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\kolo.h(2): error C2504: 'figure' : base class undefined
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\l2.1.11.c++.cpp(10): error C2027: use of undefined type 'figure'
1>          c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\figure.h(6) : see declaration of 'figure'
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\l2.1.11.c++.cpp(10): error C2227: left of '->plosha' must point to class/struct/union/generic type
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\l2.1.11.c++.cpp(11): error C2027: use of undefined type 'figure'
1>          c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\figure.h(6) : see declaration of 'figure'
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\l2.1.11.c++.cpp(11): error C2227: left of '->perimeter' must point to class/struct/union/generic type
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\l2.1.11.c++.cpp(13): error C2440: 'initializing' : cannot convert from 'kolo *' to 'figure *'
1>          Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\l2.1.11.c++.cpp(14): error C2027: use of undefined type 'figure'
1>          c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\figure.h(6) : see declaration of 'figure'
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\l2.1.11.c++.cpp(14): error C2227: left of '->plosha' must point to class/struct/union/generic type
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\l2.1.11.c++.cpp(15): error C2027: use of undefined type 'figure'
1>          c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\figure.h(6) : see declaration of 'figure'
1>c:\users\yura\desktop\proekts\l2.1.11.c++\l2.1.11.c++\l2.1.11.c++.cpp(15): error C2227: left of '->perimeter' must point to class/struct/union/generic type
1>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.