Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 6

Нет подходящего конструктора по умолчанию

22.03.2022, 13:49. Показов 809. Ответов 3
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
У меня класс, где я хочу сделать конструктор с параметром по умолчанию, но он почему-то не принимает его за конструктор по умолчанию, и ругается. Как не пытался - не получается
ctime.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef __CTIME_H__
#define __CTIME_H__
class CTime
{
    char* timestr;
public:
    CTime(const char* str);//конструктор по умолчанию
    CTime(const CTime& clk);//копирующий конструктор
    ~CTime();//деструктор
    void show();//функция-элемент
};//обязательно ставить точку с запятой, т.к. class –
// объявление типа
#endif#pragma once
ctime.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
#pragma warning(disable : 4996)
#include <string.h>
#include <iostream>
#include "ctime.h"
using namespace std;
 
CTime::CTime(const char* str = "00:00:00")
{
    timestr = new char[strlen(str) + 1];
    strcpy(timestr, str);
}
CTime::CTime(const CTime& clk)
{
    timestr = new char[strlen(clk.timestr) + 1];
    strcpy(timestr, clk.timestr);
}
CTime::~CTime()
{
    delete[] timestr;
}
void CTime::show()
{
    cout << "Time is " << timestr << endl;
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma warning(disable : 4996)
#include <cstdio>
#include <string>
#include <string.h>
#include <iostream>
#include "ctime.h"
using namespace std;
 
int main(void)
{
    CTime a;//для а вызывается конструктор по умолчанию
    CTime* b = new CTime;//для b вызывается конструктор по умолчанию
    CTime e(a);//для e вызывается копирующий конструктор
    //вызовем функцию-элемент
    a.show();//00:00:00
    b->show();//00:00:00
    e.show();//00:00:00
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2022, 13:49
Ответы с готовыми решениями:

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

Нет подходящего конструктора по умолчанию
Не могу взять в толк, почему ругается на отсутствие конструктора по умолчанию, ведь я их прописал в обеих классах #include...

Нет подходящего конструктора по умолчанию
написал вот такой код // ConsoleApplication29.cpp: определяет точку входа для консольного приложения. // #include...

3
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
22.03.2022, 14:50
Лучший ответ Сообщение было отмечено Duk как решение

Решение

Цитата Сообщение от Duk Посмотреть сообщение
CTime(const char* str);//конструктор по умолчанию
Это конструктор с параметром.
Кон~ по-ум~ без параметров.
Цитата Сообщение от Duk Посмотреть сообщение
C++
1
CTime a;//для а вызывается конструктор по умолчанию
Да, но его нет, т.к. ты определил другие конструкторы (и по-умолч~ не генерируется больше автоматически), а CTime(); у тебя нету

Добавлено через 8 минут
Цитата Сообщение от Duk Посмотреть сообщение
где я хочу сделать конструктор с параметром по умолчанию
Т.е.
CTime(const char* str = ХХХ);?
Эт может сработать. но у тебя его тоже нет.

Добавлено через 1 минуту
Один фиг ж лучше CTime() : татата
1
0 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 6
22.03.2022, 15:02  [ТС]
Ну, собственно да, я сделал отдельно конструктор без ничего, куда это "00:00:00" впихнул, и второй, где вводится уже строка
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
22.03.2022, 15:16
Цитата Сообщение от Duk Посмотреть сообщение
куда это "00:00:00" впихнул
Ой, погодь, не увидел.
Цитата Сообщение от Duk Посмотреть сообщение
C++
1
CTime::CTime(const char* str = "00:00:00")
Короч наоборот ты сделал, const char* str = "00:00:00" - это в объявление, а const char* str в определение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2022, 15:16
Помогаю со студенческими работами здесь

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

Нет подходящего конструктора vector по умолчанию
Не понимаю, как описать #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; class Money { ...

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

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

C2512: odejda: нет подходящего конструктора по умолчанию
Пытаюсь разобраться с полиморфизмом. Помогите пожалуйтста. #include &lt;string&gt; #include &lt;iostream&gt; using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru