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

std::basic_istream<_CharT, _Traits>::basic_istream() [with _CharT = char; _Traits = std::char_traits<char>]» is protected

20.07.2013, 01:17. Показов 5087. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс:
C++
1
2
3
4
5
6
7
8
9
10
11
class Expression {
public:
    Expression(string expr, ErrorCallback errcb=0);
    Expression(const Expression& orig);
    virtual ~Expression();
// ..................
private:
    istream in;
    ostream out;
// .............
};
Конструкторы:
C++
1
2
3
4
5
6
7
8
9
10
Expression::Expression(const Expression& orig) {
// .........
    in=orig.in;
    out=orig.out;
}
Expression::Expression(string expr, ErrorCallback errcb) {
    this->in=istream();
    this->out=ostream();
// ...............
}
При компиляции выдает такое вот полотно:
Code
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Вход в каталог `/home/roma/NetBeansProjects/CML'
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/cml
make[2]: Вход в каталог `/home/roma/NetBeansProjects/CML'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/Expression.o.d
g++    -c -g -std=c++11 -MMD -MP -MF build/Debug/GNU-Linux-x86/Expression.o.d -o build/Debug/GNU-Linux-x86/Expression.o Expression.cpp
/usr/include/c++/4.7/istream: In constructor «Expression::Expression(std::string, ErrorCallback)»:
In file included from /usr/include/c++/4.7/iostream:41:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/istream:604:7: ошибка: «std::basic_istream<_CharT, _Traits>::basic_istream() [with _CharT = char; _Traits = std::char_traits<char>]» is protected
Expression.cpp:11:56: ошибка: в данном контексте
In file included from /usr/include/c++/4.7/iostream:40:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/ostream:382:7: ошибка: «std::basic_ostream<_CharT, _Traits>::basic_ostream() [with _CharT = char; _Traits = std::char_traits<char>]» is protected
Expression.cpp:11:56: ошибка: в данном контексте
In file included from /usr/include/c++/4.7/iostream:41:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/istream:604:7: ошибка: «std::basic_istream<_CharT, _Traits>::basic_istream() [with _CharT = char; _Traits = std::char_traits<char>]» is protected
Expression.cpp:15:22: ошибка: в данном контексте
Expression.cpp:15:22: ошибка: use of deleted function «std::basic_istream<char>& std::basic_istream<char>::operator=(const std::basic_istream<char>&)»
In file included from /usr/include/c++/4.7/iostream:41:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/istream:56:11: замечание: «std::basic_istream<char>& std::basic_istream<char>::operator=(const std::basic_istream<char>&)» is implicitly deleted because the default definition would be ill-formed:
/usr/include/c++/4.7/istream:56:11: ошибка: use of deleted function «std::basic_ios<char>& std::basic_ios<char>::operator=(const std::basic_ios<char>&)»
In file included from /usr/include/c++/4.7/ios:45:0,
                 from /usr/include/c++/4.7/ostream:40,
                 from /usr/include/c++/4.7/iostream:40,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/bits/basic_ios.h:64:11: замечание: «std::basic_ios<char>& std::basic_ios<char>::operator=(const std::basic_ios<char>&)» is implicitly deleted because the default definition would be ill-formed:
In file included from /usr/include/c++/4.7/ios:43:0,
                 from /usr/include/c++/4.7/ostream:40,
                 from /usr/include/c++/4.7/iostream:40,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/bits/ios_base.h:791:5: ошибка: «std::ios_base& std::ios_base::operator=(const std::ios_base&)» is private
In file included from /usr/include/c++/4.7/ios:45:0,
                 from /usr/include/c++/4.7/ostream:40,
                 from /usr/include/c++/4.7/iostream:40,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/bits/basic_ios.h:64:11: ошибка: в данном контексте
In file included from /usr/include/c++/4.7/iostream:40:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/ostream:382:7: ошибка: «std::basic_ostream<_CharT, _Traits>::basic_ostream() [with _CharT = char; _Traits = std::char_traits<char>]» is protected
Expression.cpp:16:23: ошибка: в данном контексте
Expression.cpp:16:23: ошибка: use of deleted function «std::basic_ostream<char>& std::basic_ostream<char>::operator=(const std::basic_ostream<char>&)»
In file included from /usr/include/c++/4.7/iostream:40:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/ostream:56:11: замечание: «std::basic_ostream<char>& std::basic_ostream<char>::operator=(const std::basic_ostream<char>&)» is implicitly deleted because the default definition would be ill-formed:
/usr/include/c++/4.7/ostream:56:11: ошибка: use of deleted function «std::basic_ios<char>& std::basic_ios<char>::operator=(const std::basic_ios<char>&)»
/usr/include/c++/4.7/istream: In copy constructor «Expression::Expression(const Expression&)»:
In file included from /usr/include/c++/4.7/iostream:41:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/istream:604:7: ошибка: «std::basic_istream<_CharT, _Traits>::basic_istream() [with _CharT = char; _Traits = std::char_traits<char>]» is protected
Expression.cpp:354:46: ошибка: в данном контексте
In file included from /usr/include/c++/4.7/iostream:40:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
/usr/include/c++/4.7/ostream:382:7: ошибка: «std::basic_ostream<_CharT, _Traits>::basic_ostream() [with _CharT = char; _Traits = std::char_traits<char>]» is protected
Expression.cpp:354:46: ошибка: в данном контексте
Expression.cpp:358:13: ошибка: use of deleted function «std::basic_istream<char>& std::basic_istream<char>::operator=(const std::basic_istream<char>&)»
Expression.cpp:359:14: ошибка: use of deleted function «std::basic_ostream<char>& std::basic_ostream<char>::operator=(const std::basic_ostream<char>&)»
make[2]: *** [build/Debug/GNU-Linux-x86/Expression.o] Ошибка 1
make[2]: Выход из каталога `/home/roma/NetBeansProjects/CML'
make[1]: *** [.build-conf] Ошибка 2
make[1]: Выход из каталога `/home/roma/NetBeansProjects/CML'
make: *** [.build-impl] Ошибка 2
 
 
СОБРАТЬ FAILED (значение выхода 2,, общее время: 756ms)
В чем ошибка? Заранее благодарен.

Добавлено через 2 минуты
П.с. изначально этих строк в конструкторах не было, но ошибки все равно вываливались.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.07.2013, 01:17
Ответы с готовыми решениями:

(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&
astxx::manager::connection::connection(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned short); ...

IntelliSense: отсутствует оператор "<<", соответствующий этим операндам типы операндов: std::basic_ostream<char, std::char_traits<char>
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; struct Stydent { std::string faculty; int rate; ...

Cin.getline "error: no matching function for call to "STD::BASIC_istream<char> и.тд)
быстрый поиск в интернете дал понять, сущность проблемы, но не ее основу. касательно работы с интами все ОК. читает и выводит. с char он...

4
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
20.07.2013, 01:33

Не по теме:

Ну я всегда говорил, что Линукс - ад для программиста.

C++
1
in=istream();
что тут вообще задумывалось сделать?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
20.07.2013, 10:13
Kuzia domovenok, причем тут линукс вообще? Это же сообщение компилятора, а не ОС.
А проблема тут в том, что потоки нельзя копировать. Нет оператора присваивания.
Используйте инициализатор конструктора, например.
1
6 / 6 / 4
Регистрация: 13.10.2012
Сообщений: 101
20.07.2013, 14:30  [ТС]
Tulosba, убрал вообще все упоминания(кроме объявления) in и out, ошибок стало меньше, но:
Code
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
"C:/cygwin/bin/MinGW-4.7.1/bin/make" -f nbproject/Makefile-win_debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `H:/CML'
"C:/cygwin/bin/MinGW-4.7.1/bin/make"  -f nbproject/Makefile-win_debug.mk dist/win_debug/Cygwin-Windows/cml.exe
make[2]: Entering directory `H:/CML'
mkdir -p build/win_debug/Cygwin-Windows
rm -f build/win_debug/Cygwin-Windows/Expression.o.d
g++    -c -g -std=c++11 -MMD -MP -MF build/win_debug/Cygwin-Windows/Expression.o.d -o build/win_debug/Cygwin-Windows/Expression.o Expression.cpp
c:\cygwin\bin\mingw-4.7.1\bin\../lib/gcc/mingw32/4.7.1/include/c++/istream: In constructor 'Expression::Expression(std::string, ErrorCallback)':
In file included from c:\cygwin\bin\mingw-4.7.1\bin\../lib/gcc/mingw32/4.7.1/include/c++/iostream:41:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
c:\cygwin\bin\mingw-4.7.1\bin\../lib/gcc/mingw32/4.7.1/include/c++/istream:604:7: error: 'std::basic_istream<_CharT, _Traits>::basic_istream() [with _CharT = char; _Traits = std::char_traits<char>]' is protected
Expression.cpp:11:56: error: within this context
In file included from c:\cygwin\bin\mingw-4.7.1\bin\../lib/gcc/mingw32/4.7.1/include/c++/iostream:40:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
c:\cygwin\bin\mingw-4.7.1\bin\../lib/gcc/mingw32/4.7.1/include/c++/ostream:382:7: error: 'std::basic_ostream<_CharT, _Traits>::basic_ostream() [with _CharT = char; _Traits = std::char_traits<char>]' is protected
Expression.cpp:11:56: error: within this context
c:\cygwin\bin\mingw-4.7.1\bin\../lib/gcc/mingw32/4.7.1/include/c++/istream: In copy constructor 'Expression::Expression(const Expression&)':
In file included from c:\cygwin\bin\mingw-4.7.1\bin\../lib/gcc/mingw32/4.7.1/include/c++/iostream:41:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
c:\cygwin\bin\mingw-4.7.1\bin\../lib/gcc/mingw32/4.7.1/include/c++/istream:604:7: error: 'std::basic_istream<_CharT, _Traits>::basic_istream() [with _CharT = char; _Traits = std::char_traits<char>]' is protected
Expression.cpp:354:46: error: within this context
In file included from c:\cygwin\bin\mingw-4.7.1\bin\../lib/gcc/mingw32/4.7.1/include/c++/iostream:40:0,
                 from Expression.h:12,
                 from Expression.cpp:8:
c:\cygwin\bin\mingw-4.7.1\bin\../lib/gcc/mingw32/4.7.1/include/c++/ostream:382:7: error: 'std::basic_ostream<_CharT, _Traits>::basic_ostream() [with _CharT = char; _Traits = std::char_traits<char>]' is protected
Expression.cpp:354:46: error: within this context
nbproject/Makefile-win_debug.mk:70: recipe for target `build/win_debug/Cygwin-Windows/Expression.o' failed
make[2]: *** [build/win_debug/Cygwin-Windows/Expression.o] Error 1
make[2]: Leaving directory `H:/CML'
nbproject/Makefile-win_debug.mk:63: recipe for target `.build-conf' failed
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `H:/CML'
nbproject/Makefile-impl.mk:39: recipe for target `.build-impl' failed
make: *** [.build-impl] Error 2
 
 
СОБРАТЬ FAILED (значение выхода 2,, общее время: 3s)
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
20.07.2013, 16:01
FanOfGun, у istream и ostream нет конструктора по умолчанию, только конструктор преобразования из streambuf. Если
Цитата Сообщение от FanOfGun Посмотреть сообщение
убрал вообще все упоминания(кроме объявления) in и out
значит в конструторе они инициализируются конструктором по умолчанию.

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ну я всегда говорил, что Линукс - ад для программиста.
lol что, к чему это вообще?)

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2013, 16:01
Помогаю со студенческими работами здесь

ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*')
int main() { string fileName, currWord, currMax = &quot;&quot;; cin&gt;&gt;fileName; freopen(fileName, &quot;r&quot;, stdin); while...

Не найден оператор, принимающий левый операнд типа std::basic_istream
вот в этом коде в 120 строчке ошибка error C2678: бинарный &quot;!=&quot;: не найден оператор, принимающий левый операнд типа...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

Error: ambiguous overload for 'operator<<' (operand types are 'std::ofstream {aka std::basic_ofstream<char>}'
на #define LOG(Variable) Log&lt;&lt;&quot;&lt;&quot;;...

Странная ошибка: [Error] no match for call to '(std::string {aka std::basic_string<char>}) (int&)'
У меня появляется проблема при компиляции сей программы: #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;sstream&gt; ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru