Можете помочь?Я написал этот код в vs 2015 и все нормально работало. Как только скопировал код в мы 2017 дает ошибку "E0289 отсутствуют экземпляры конструктора "Book::Book", соответствующие списку аргументов","MVBook::MVBook", соответствующие списку аргументов" , E1790 на конструктор по умолчанию для "Library" нельзя ссылаться, так как эта функция удалена Вот мой код
// ConsoleApplication3.cpp : Defines the entry point for the console application.
//
#define _CRT_SECURE_NO_WARNINGS
//#include "stdafx.h"
#include <iostream>
using namespace std;
class Book
{
protected:
char *title;
public:
Book(char *t);
Book &operator =(Book &t)
{
}
~Book()
{
delete[] title;
}
};
class MVBook : public Book
{
friend ostream &operator<<(ostream &t, MVBook &x);
friend Library;
int counter;
public:
MVBook(char *t, int i) : Book(t)
{
counter = i;
}
void print(ostream &t)
{
t << title << endl;
t << counter << endl;
}
~MVBook()
{
delete[] title;
}
};
ostream &operator<<(ostream &t, MVBook &x)
{
x.print(t);
return t;
}
class Library
{
Book books[10];
int i = 0;
public:
void add(Book &t)
{
books[i] = t;
i++;
}
};
Book::Book(char *t)
{
title = new char[strlen(t + 1)];
strcpy(title, t);
}
int main()
{
Book A("Alice in the wonderland");
Book B("Basic of C++");
MVBook D("Dictionary", 5);
Library C;
C.add(A);
C.add(B);
cout << D;
return 0;
}
В классе Book у вас есть только конструктор от строки. А по стандарту конструктор по умолчанию не создаётся если у вас уже есть другой конструктор.
В классе Library books записаны в массив. А для массива обязательно чтобы элемент имел конструктор по умолчанию.
Да напишите вы в Book этот конструктор , и ✝ с ним.
char *title { nullptr } ;
public:
Book ( ) { }
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
При включении любых C++ заголовков появляется ошибка в заголовках LLVM:
Есть форма ввода YouTubeВ неё можно ввести поисковой запрос или вставить ссылку на видео YouTube
Мне нужно сделать блокировку чтения и записи, при этом, во время чтения происходит удаление элементов из коллекции List