 |
|

27.04.2017, 14:33
|
|
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами:
6483143
Репутация:
93
|
|
C++:
Код:
ofstream
fout
(
"yiffme"
,
ios
::
app
)
;
Объявить это дело глобально при помощи extern не удаётся, в связи с чем вопрос: каким образом объявить fout внутри функции глобальной переменной?
|
|
|

27.04.2017, 14:56
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Создавай указатель.
|
|
|

27.04.2017, 15:12
|
|
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами:
6483143
Репутация:
93
|
|
Сообщение от Dark_Knight
Создавай указатель.
C++:
Код:
extern
int
*
ptr
=
&
fout
;
выдаёт
Код:
Код:
1>main.cpp(53): error C2205: ptr: невозможно инициализировать внешние переменные с областью видимости блока
Последние три слова мне вообще ничего не говорят ._.
гугл тоже не смог мне помочь. Всё плохо.
|
|
|

27.04.2017, 15:32
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Не так надо.
Пример
C:
Код:
в main
.
h
extern
int
*
ptr
;
в main
.
cpp
int
*
ptr
=
nullptr
;
void
main
(
)
{
if
(
!
ptr
)
ptr
=
new
int
;
}
|
|
|

27.04.2017, 15:42
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
Сообщение от Снежок
У меня такой штуки в "решении" нету. Её создать надо?
Да, и включить в main.cpp
|
|
|

27.04.2017, 15:54
|
|
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами:
6483143
Репутация:
93
|
|
в main.cpp:
C++:
Код:
int
*
ptr
=
nullptr
;
в main.h:
C++:
В void callback mainloop:
C++:
Ошибка:
Код:
Код:
error C2440: =: невозможно преобразовать "std::ofstream *" в "int"
|
|
|

27.04.2017, 16:01
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
Сообщение от Снежок
в main.cpp:
C++:
Код:
int
*
ptr
=
nullptr
;
в main.h:
C++:
В void callback mainloop:
C++:
Ошибка:
Код:
Код:
error C2440: =: невозможно преобразовать "std::ofstream *" в "int"
Так ты объявляй ofstream, а не int
|
|
|

27.04.2017, 16:12
|
|
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами:
6483143
Репутация:
93
|
|
Сообщение от BlackKnigga
Так ты объявляй ofstream, а не int
main.h
Код:
Код:
extern ofstream *ptr;
main.cpp
C++:
Код:
ofstream
*
ptr
=
nullptr
;
void callback mainloop
C++:
ошибки:
Код:
Код:
1>main.cpp(17): error C2371: ptr: переопределение; различные базовые типы
1> c:\users\snezh\documents\visual studio 2013\projects\aa\sfplugin\qwe\main.h(1): см. объявление "ptr"
1>main.cpp(53): error C2440: =: невозможно преобразовать "std::ofstream *" в "int"
1> Не существует контекста, в котором такое преобразование возможно
1>
|
|
|

27.04.2017, 16:18
|
|
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,262
С нами:
6935116
Репутация:
183
|
|
Сообщение от Снежок
C++:
Код:
ofstream
fout
(
"yiffme"
,
ios
::
app
)
;
Объявить это дело глобально при помощи extern не удаётся, в связи с чем вопрос: каким образом объявить fout внутри функции глобальной переменной?
C++:
Код:
// main.cpp
ofstream
fout
(
"yiffme"
,
ios
::
app
)
;
// main.h
extern
ofstream fout
;
|
|
|

27.04.2017, 16:25
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от Снежок
невозможно преобразовать "std:  fstream *" в "int"
int a = reinterpret_cast(&fout);
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|