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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 4.63
N-t0z
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 16
#1

C2512: odejda: нет подходящего конструктора по умолчанию - C++

14.12.2010, 20:48. Просмотров 6827. Ответов 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
#include <string>
#include <iostream>
using namespace std;
class odejda
{
public:
    float razm,razm1,pug,mas;
    const char opis;
    odejda(const char opis1);
    void parametr(void);
    virtual void info(void);
};
odejda::odejda(const char opis1)
{ const char opis=opis1;
}
void odejda:: parametr(void)
{
    cout<<("Zadajte diapazon razmerov ot ")<<endl;
    cin>> razm;
    cout<<(" do ")<<endl;
    cin>>razm1;
    cout<<("Zadajte kol-vo pugovic")<<endl;
    cin>> pug;
    cout<<("Zadajte massu izdeli9")<<endl;
    cin>>mas;
  const char*opis="To, 4to ludi odevaut po verh bel'9";
}
int main()
{
    odejda vv;
    vv.parametr();
}
Описание ошибок
1>------ Построение начато: проект: oop_zad3, Конфигурация: Debug Win32 ------
1> odejka.cpp
1>c:\users\ион\documents\visual studio 2010\projects\oop_zad2\oop_zad3\odejka.cpp(15): error C2758: odejda::opis: требуется инициализация в списке инициализации базовых классов и членов
1> c:\users\ион\documents\visual studio 2010\projects\oop_zad2\oop_zad3\odejka.cpp(9): см. объявление "odejda::opis"
1>c:\users\ион\documents\visual studio 2010\projects\oop_zad2\oop_zad3\odejka.cpp(31): error C2512: odejda: нет подходящего конструктора по умолчанию
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2010, 20:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C2512: odejda: нет подходящего конструктора по умолчанию (C++):

Visual жалуется на конструктор "Error C2512: нет подходящего конструктора по умолчанию" - C++
Привет, мне Visual C++ выдал такие ошибки делаю все как в уроке, пытаюсь описать класс в заголовочном файле, вот код с...

Нет подходящего конструктора по умолчанию - C++
Всем привет :) Есть вот такой код#include &lt;vector&gt; #include &lt;SFML/Graphics.hpp&gt; using namespace sf; class Animation { public:...

Нет подходящего конструктора по умолчанию - C++
#ifndef ANIMATION_H #define ANIMATION_H #include &lt;SFML\Graphics.hpp&gt; class animation { public: std::vector&lt;sf::IntRect&gt;...

Нет подходящего конструктора по умолчанию. Наследование - C++
Скидываю хидер и исходник к нему: хидер(Main_Menu.h): #include &quot;stdafx.h&quot; #ifndef MAIN_MENU_DEF #define MAIN_MENU_DEF 1 ...

Ошибка: нет подходящего конструктора по умолчанию - C++
В общем ребят, такая проблема, решил начать обучение плюсов по книжке, там задание создать класс и конструктор с параметром, и в общем суть...

Создание лог файла. Нет подходящего конструктора по умолчанию - C++
Добрый день, почему вылетает ошибка не пойму. Ошибка: нет подходящего конструктора по умолчанию. И вторая ошибка Log::Log(void):...

7
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
14.12.2010, 21:04 #2
Цитата Сообщение от N-t0z Посмотреть сообщение
1>c:\users\ион\documents\visual studio 2010\projects\oop_zad2\oop_zad3\odejka.cpp(15): error C2758: odejda::opis: требуется инициализация в списке инициализации базовых классов и членов
1> c:\users\ион\documents\visual studio 2010\projects\oop_zad2\oop_zad3\odejka.cpp(9): см. объявление "odejda::opis"
C++
1
2
3
4
odejda::odejda(const char opis1)
    : opis(opis1) // список инициализации
{ 
}
Цитата Сообщение от N-t0z Посмотреть сообщение
1>c:\users\ион\documents\visual studio 2010\projects\oop_zad2\oop_zad3\odejka.cpp(31): error C2512: odejda: нет подходящего конструктора по умолчанию
такая запись
C++
1
odejda vv;
подразумевает наличие конструктора, который не принимает параметров. У вас такого конструктора нет.
0
N-t0z
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 16
14.12.2010, 23:16  [ТС] #3
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
2
3
4
odejda::odejda(const char opis1)
    : opis(opis1) // список инициализации
{ 
}
такая запись
C++
1
odejda vv;
подразумевает наличие конструктора, который не принимает параметров. У вас такого конструктора нет.
Как решить эту проблему? vv нужно каким-то образом внести в список инициализации?

Добавлено через 1 час 54 минуты
Ну, мужики, спасайте. Завтра лабу сдавать, а я встрял на мертво на этом месте.
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
14.12.2010, 23:32 #4
Цитата Сообщение от N-t0z Посмотреть сообщение
Ну, мужики, спасайте. Завтра лабу сдавать, а я встрял на мертво на этом месте.
Как сказал предыдущий оратор,
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
2
3
4
odejda::odejda(const char opis1)
    : opis(opis1) // список инициализации
{ 
}
такая запись
C++
1
odejda vv;
подразумевает наличие конструктора, который не принимает параметров. У вас такого конструктора нет.
опишите (напишите) конструктор совсем без параметров.
0
N-t0z
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 16
14.12.2010, 23:51  [ТС] #5
Честное слово - с утра за компом в си ковыряюсь. У меня уже голова не варит. Я правд не понимаю ваших советов. Вы можете исправить это в коде, если не очень трудно?
0
Icarus
6 / 6 / 2
Регистрация: 27.09.2010
Сообщений: 7
15.12.2010, 00:23 #6
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
#include <string.h>
#include <iostream>
using namespace std;
class odejda
{
private:
        float razm,razm1,pug,mas;
        char opis[50];
public:
    odejda();
        odejda(char opis1[]);
        void parametr(void);
    void info();
};
odejda::odejda()
{
}
odejda::odejda(char opis1[])
{ 
    strcpy(opis,opis1);
}
void odejda::parametr()
{
        cout<<("Задайте диапазон размеров от ")<<endl;
        cin>> razm;
        cout<<(" до ")<<endl;
        cin>>razm1;
        cout<<("Задайте к-во пуговиц")<<endl;
        cin>> pug;
        cout<<("Задайте массу изделия")<<endl;
        cin>>mas;
        strcpy(opis,"То, что люди одевает вверх белья");
}
void odejda::info()
{
 
}
int main()
{
    setlocale(LC_ALL,"Russian");
        odejda vv;
        vv.parametr();
        system("pause");
    return 0;
}
1
N-t0z
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 16
15.12.2010, 01:11  [ТС] #7
Спасибо тебе, добрый человек=)

Добавлено через 45 минут
Программа почти готова. Ещё раз огромное всем спасибо. С 18 вечера глаза ломал, пытался в нете про эти ***ные конструкторы что-нибудь дельное вычитать.
0
Kinny
0 / 0 / 0
Регистрация: 14.04.2016
Сообщений: 4
13.05.2016, 12:34 #8
спасибо,тоже помогло)
0
13.05.2016, 12:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2016, 12:34
Привет! Вот еще темы с ответами:

Конструктор Шредингера "нет подходящего конструктора по умолчанию", хотя он есть - C++
собственно, код. на 156-й строке ( cont(circi);) ругается на отсутствие конструктора в классе. но он там есть! я его видел! а если...

error C2512: no appropriate default constructor available, несмотря на наличие конструктора по умолчанию - C++
Вот код: class University { string name; Human *chief; public: vector&lt;Faculty&gt; subList;

Как поступить, если необходимо создать массив экземпляров класса, но в классе нет конструктора по умолчанию? - C++
Как поступить, если необходимо создать массив экземпляров класса, но в классе нет конструктора по умолчанию? Конечно, можно его объявить,...

Инициализация конструктора по умолчанию - C++
почему если инициализировать поля класса в конструкторе по умолчанию так: MyClass::MyClass() { int m=0; int t=0; } то поля...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.