Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для Виктор_Сен
36 / 29 / 2
Регистрация: 01.08.2011
Сообщений: 176

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

08.10.2011, 15:37. Показов 2203. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет! Ни как не могу разобраться, в чём дело. Создал 2 класса: Base и Derived, где Derived наследует Base. Но при компиляции возникает ошибка: "Error C2512: Base: нет подходящего конструктора по умолчанию d:\doc\dev\visual studio 2010\test\test\Derived.h 7 1 Test". Вот исходники:
Base.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#pragma once
class Base
{
public:
 
    Base(int a)
    {
    }
 
    virtual ~Base(void)
    {
    }
};
Derived.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma once
#include "base.h"
class Derived:  public Base
{
public:
 
    Derived(void)
    {       
    }
 
    virtual ~Derived(void)
    {
    }
};
Test.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// Test.cpp: главный файл проекта.
 
#include "stdafx.h"
#include "Derived.h"
 
using namespace System;
 
int main(array<System::String ^> ^args)
{   
    Derived a=Derived();
    Console::WriteLine(L"Здравствуй, мир!");
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.10.2011, 15:37
Ответы с готовыми решениями:

Ошибка при наследовании?
Программа компилируется, но консоль не выдает информацию. Связано ли это как то с переполнением буфера? Программа небольшая укажите...

Ошибка при наследовании
Вот такой код: class Figure2 { protected: int Color; int CenterX; int CenterY; public:

Ошибка при наследовании
Имеется архитектура вида: класс &quot;человек&quot;, от него производные &quot;препод&quot; и &quot;член приемной комиссии&quot;. От их двоих производный класс...

4
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
08.10.2011, 16:14
У вас конструктор базового класса принимает 1 аргумент, а вы создаете объект без аргументов.
При создании объекта производного класса, сперва вызывается конструктор производного класса, затем конструктор базового класса. У базового класса есть только 1 конструктор и он принимает 1 аргумент.
1
 Аватар для Виктор_Сен
36 / 29 / 2
Регистрация: 01.08.2011
Сообщений: 176
08.10.2011, 16:26  [ТС]
Получается, чтобы использовать наследвание, нужно, чтобы у базового класса был конструктор без параметров. А можно ли как-нибудь передать параметры в конструктор базового класса? Просто я пробовал писать так:
C++
1
2
3
    Derived(int a)
    {       
    }
и
C++
1
Derived a=Derived(10);
, но это не помогло.
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
08.10.2011, 16:27
Вот так:
C++
1
2
3
4
Derived(int a )
: Base( a ) // явно вызываем конструктор класса Base
{
}
Можно добавить конструктор по умолчанию в класс Base и тогда ошибки не будет.
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
08.10.2011, 16:29
Дополню Chelioss:
Чтобы код работал нужно либо явно инициализировать Base из Derived(void)
C++
1
Derived(void):Base(0){}
Либо добавить к Base конструктор по умолчанию без параметров ну или ещё убрать существующий у Base коструктор (так как он всё равно ничего не делает) и компилятор сам создаст классу Base конструктор по умолчанию.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2011, 16:29
Помогаю со студенческими работами здесь

Ошибка при наследовании
Здраствуйте,не могу понять где именно оштбся,возможно кто-то поможет,код прилагаю //#include &quot;stdafx.h&quot; #include...

Ошибка при наследовании
Подскажите пожалуйста почему наследование класса readwrite не работает? //Программа считывает данные из файла и строит графики ...

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

Ошибка при наследовании класса
Всем доброго времени суток, пытаюсь отнаследовать класс, вот такой код я смастерил: #ifndef CLASS_H_ #define CLASS_H_ class stack ...

Ошибка компиляции при наследовании классов
У меня есть класс CNew который наследует класс CTransport но при компиляции выводит ошибку ниже 4 раза для 2 строки файла CNew.h .Мне не...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru