Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/22: Рейтинг темы: голосов - 22, средняя оценка - 4.64
 Аватар для Beliy_shum
1 / 1 / 0
Регистрация: 10.08.2008
Сообщений: 65

Почему не может быть такой функции?

04.09.2008, 15:54. Показов 5035. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ofstream input_file(str1) ; такой строкой кода я открываю файл.

ofstream - тип обекта
input_file - обект типа ofstream

а тепрь я хочу открывать файл в другом месте программы использую функцию, а в место вызова возвращать объект типа ofstream

так почему же не компилируется моя функция?
C++
1
2
3
4
5
6
7
8
9
10
ofstream open_file_eror(CString str1)
{
    ofstream input_file(str1) ;
    if(input_file==NULL) cout<< "~~ERROR~~ input file "<< str1<<"\n";
    {
        cout<< "~~ERROR~~ input file "<< str1<<"\n";
 
    }
    return input_file;
}
ошибки -
c:\documents and settings\я\мои документы\visual studio projects\kooltest\kooltest.cpp(21): error C2556: 'std::ofstream open_file_eror(ATL::CString)' : overloaded function differs only by return type from 'void open_file_eror(ATL::CString)'
c:\documents and settings\я\мои документы\visual studio projects\kooltest\kooltest.cpp(21): error C2371: 'open_file_eror' : redefinition; different basic types
c:\documents and settings\я\мои документы\visual studio projects\kooltest\kooltest.cpp(31): error C2556: 'std::ofstream open_file_eror(ATL::CString)' : overloaded function differs only by return type from 'void open_file_eror(ATL::CString)'
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.09.2008, 15:54
Ответы с готовыми решениями:

Почему у функции main() тип int? Почему не может быть какой-то другой, например, char?
Схема, касательно возвращаемого значения понятна. Не понятно почему именно целочисленное. Хелп)

Подскажите как может быть устроен такой датчик...
http://www.ebay.som/itm/POLE-TANK-SENDER-Fuel-wotir-Level-Liquid-Sensor-Gauge-Meter-250mm-length-/360696100995?pt=Motors_Car_Truck_Parts_Acc...

Сколько вариантов может быть такой посадки деревьев?
Садоводу надо посадить 7 груш, 8 яблонь и 4 вишни в двух садах. Сколько вариантов может быть такой посадки, если хотя бы по одному дереву...

21
Эксперт С++
 Аватар для XuTPbIu_MuHTAu
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
04.09.2008, 20:12
Студворк — интернет-сервис помощи студентам
Если объект локальный,при выходе из функции запускается деструктор,в случае с потоками я не знаю,что конкретно делает деструктор,но,никто не гарантирует,что работа с его копией будет возможна. Делай как Vourhey говорит.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
04.09.2008, 20:39
О, я еще поспешу развеять твои сомнения по поводу ползености такого кода, как у тебя, и по поводу того, что ты говоришь "выношу значения вне функции". Скомпилируй это:
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
using namespace std;
class a
{
public:
    int j;
    a(int u)
    {
        j = u;
    }
    a(const a &)
    {
        j = 666;
    }
};
 
a open_file_error()
{
    a i(10);
    cout<<i.j<<endl;
    return i;
}
 
void main()
{
    a i = open_file_error();
    cout<<i.j<<endl;
    cin.get();
}
где же та десятка, что была внутри? Куда делась? Что, теперь виднее стала едеологическая неправильность такого подхода? XuTPbIu_MuHTAu прав. Ты не можешь быть уверен, что тебе вернулось то, что было.
Делай через указатели. Тем более, в твоем случае конструктора копирования просто нет. Поэтому и ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2008, 20:39

Что за баг может быть такой в VLC Player 2.1.2?
Здравствуйте! Много говорить не буду - только по сути. Создаю окно через WinAPI. Его клиентскую область использую для вывода видео через...

Нужен такой калькулятор, самый простой код, который только может быть

Почему такой бредовый вывод типов и как с этим быть?
Если так let add (a:float) (b:float) (c:float) = b * b - a * c;; то всё нормально val add : a:float -&gt; b:float -&gt;...

Почему может не быть индекса?
Есть серверная база. Есть пользователь с правами Эдитора. Для базы создан индекс, который периодически обновляется. Так вот что...

Почему движок wordpress может быть плох
Авто портал - чересчур громко сказано, конечно. Но все равно, если я смогу реализовать такой сайт посредством wordpress, то какие...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru