Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
57 / 43 / 12
Регистрация: 27.10.2018
Сообщений: 454
1

Ошибка компиляции при наследовании классов

19.05.2019, 18:45. Показов 1236. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть класс CNew который наследует класс CTransport но при компиляции выводит ошибку ниже 4 раза для 2 строки файла CNew.h .Мне не хватает знаний чтобы пофиксить это , помогите пожайлуйста ,спасибо.

Severity Code Description Project File Line Suppression State
Error C2504 'CTransport': base class undefined ooplab7 c:\users\user\source\repos\ooplab7\ooplab7\cnew.h 2

//CNew.h
C++
1
2
3
#pragma once
class New : virtual public CTransport
{};
//CTransport.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
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <iostream>
#include <cstring>
#include <string.h>
#include "CNew.h"
using namespace std;
#ifndef Transport
#define Transport
class CTransport
{
protected:
     char* name;
    int speed, veight,pas;
public:
    CTransport();
    CTransport(const char* n, int v, int s);
    CTransport(const CTransport& obj);
    virtual ~CTransport();
 
    void ShowProperty();
    virtual void Tran() = 0;
    void Get();
    void Set(int veight, int speed, int pas);
    CTransport& operator=(const CTransport&);
};
#endif
//CTransport.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#define _CRT_SECURE_NO_WARNINGS
#include "CTransport.h"
#include "string.h"
 
CTransport::CTransport() : name(new char[20]), veight(0)
{
    strcpy(name, "No name");
}
CTransport::CTransport(const char* n, int v, int s)
{
    name = new char[strlen(n) + 1];
    strcpy(name, n);
}
CTransport::CTransport(const CTransport& obj)
{
    name = new char[strlen(obj.name) + 1];
    strcpy(name, obj.name);
    veight = obj.veight;
    speed = obj.speed;
}
CTransport::~CTransport()
{
    delete[] name;
}
 
void CTransport::ShowProperty()
{
    cout << "Name: " << name << endl;
    cout << "Speed: " << speed << endl;
    cout << "Veight: " << veight << endl;
}
CTransport& CTransport::operator=(const CTransport& obj)
{
    if (this != &obj)
    {
        delete[] name;
        name = new char[strlen(obj.name) + 1];
        name = obj.name;
        veight = obj.veight;
        speed = obj.speed;
    }
    return *this;
}
void CTransport::Set(int veight , int speed ,int pas)
{
    
    this ->veight = veight;
    this->speed = speed;
    this->pas = pas;
}
void CTransport::Get()
{
    cout << "current obj props : veight ,speed,pas number :  " << veight << "   " << speed << "   " << pas << endl;
}
Добавлено через 2 часа 30 минут
Пофиксил уже.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2019, 18:45
Ответы с готовыми решениями:

Ошибка Type missmatch при наследовании классов
При создании объекта класса Chord появляется ошибка: E2356 Type mismatch in redeclaration of...

Использование шаблонов при наследовании, ошибка при компиляции
При изучении списков написал шаблон протестировал, все работает. После написал класс наследник от...

Ошибка при компиляции с методами классов
При компиляции кода выдает следующие ошибки: \main.cpp(44) : error C2511: 'double...

ошибка при компиляции проги, использущей шаблоны классов
Возникла ошибка при компиляции проги, использующей шаблоны. Ошибка - undefined symbol /*...*/ in...

1
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
19.05.2019, 20:43 2
Лучший ответ Сообщение было отмечено plzvtl как решение

Решение

Цитата Сообщение от plzvtl Посмотреть сообщение
Пофиксил уже.
инклудить нужно базовый к предку, а не наоборот?
Цитата Сообщение от plzvtl Посмотреть сообщение
#include "CNew.h"
plzvtl, у вас на редкость внятно названа тема и присутствие решения для вопроса желательно.
0
19.05.2019, 20:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2019, 20:43
Помогаю со студенческими работами здесь

Указатели при наследовании классов
Здравствуйте , заданием было реализовать однонаправленный список как класс и затем используя...

Что происходит при наследовании классов?
Гуглил тут одну тему про наследование и коде встретилась строчка: D d; Что в ней конкретно...

Выделение памяти при наследовании классов
Здравствуйте! У меня есть метод который, читает память занимаемую классом. Есть несколько базовых...

Ошибки компиляции при наследовании и выводе размера класса
Здравствуйте, представленный ниже код должен в результате своей работы выводит размер классов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru