Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Helldrg
54 / 54 / 1
Регистрация: 10.01.2011
Сообщений: 1,093
#1

Как передать ссылку на объект в класс - C++

20.02.2013, 00:39. Просмотров 1786. Ответов 29
Метки нет (Все метки)

Здравствуйте! Подскажите, пожалуйста, почему не работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
log.h
class LogClass
{
public:
    bool InitializeLog();
    void Write(char*);
private:
    std::ofstream m_fout;
};
main.h
....
LogClass* Log;
Log = new LogClass;
Log.InitializeLog();
ClassA->Function(&Log);
....
 
ClassA.cpp
bool SystemClass::Function(LogClass* Log)
{
    Log->Write("Hello");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2013, 00:39     Как передать ссылку на объект в класс
Посмотрите здесь:

Как передать ссылку на переменную по UDP? C++
C++ Не могу понять, как правильно передать указатель на объект в файл
C++ Как передать в метод класса ссылку на экземпляр
C++ Как функции возвратить ссылку на объект?
C++ Как в функции my_function преобразовать ссылку на базовый класс в ссылку на класс B или С
C++ Как правильно передать объект fstream в функцию
C++ Как вернуть ссылку на объект?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
22.02.2013, 16:10     Как передать ссылку на объект в класс #21
ITcrusader,
C++
1
2
3
4
5
6
7
#pragma once
#ifndef HEADER_H
#define HEADER_H
 
// тут все содержимое заголовочного файла...
 
#endif
Ну уж либо одно, либо другое.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 16:46     Как передать ссылку на объект в класс #22
Цитата Сообщение от Helldrg Посмотреть сообщение
Вы имеете ввиду реализацию класса в .сpp делать а прототипы в .h?
Да. Кроме шаблонов.
Helldrg
54 / 54 / 1
Регистрация: 10.01.2011
Сообщений: 1,093
22.02.2013, 19:08  [ТС]     Как передать ссылку на объект в класс #23
Ну это хорошо я всегда так пишу))
А если шаблоны писать в классе то потом ошибки не будет?(Это просто так еще раз уточнить)
И еще, помните я говорил, что хороший ли это способ создания логера(журнала) ошибок, так вот можете на него ответить?) Может быть в сpp есть функция или еще что то, которая выводит ошибки или сохраняет их. Или может класс лучше переписать, что бы был более как бы так сказать быстрее что ли или проще)
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 19:28     Как передать ссылку на объект в класс #24
Цитата Сообщение от Helldrg Посмотреть сообщение
А если шаблоны писать в классе то потом ошибки не будет?
Прототип шаблона и его реализация должны быть в одном файле(но не специализация).
Цитата Сообщение от Helldrg Посмотреть сообщение
И еще, помните я говорил, что хороший ли это способ создания логера(журнала) ошибок, так вот можете на него ответить?) Может быть в сpp есть функция или еще что то, которая выводит ошибки или сохраняет их. Или может класс лучше переписать, что бы был более как бы так сказать быстрее что ли или проще)
На этот вопрос у меня ответа нет.
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
22.02.2013, 19:36     Как передать ссылку на объект в класс #25
Цитата Сообщение от Helldrg Посмотреть сообщение
Или может класс лучше переписать, что бы был более как бы так сказать быстрее что ли или проще)
ну так ответь себе на вопросы:
что будет если программист пользователь твоего кода забудет ввызвать InitializeLog?
а если он(программист) захочет создать несколько логгеров?
а если он передаст объект логгера по значению, а не по ссылке?
Helldrg
54 / 54 / 1
Регистрация: 10.01.2011
Сообщений: 1,093
23.02.2013, 00:05  [ТС]     Как передать ссылку на объект в класс #26
Цитата Сообщение от Jupiter Посмотреть сообщение
что будет если программист пользователь твоего кода забудет вызывать InitializeLog?
Ну я так подумал лучше открывать файл для записи только один раз и закрывать тоже только 1. Инитиалайз в самом начале поставил в мейне и все)
Цитата Сообщение от Jupiter Посмотреть сообщение
а если он передаст объект логгера по значению, а не по ссылке?
Вы имеете в виду, что нужно сделать проверку типов и значений параметров?
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.02.2013, 03:33     Как передать ссылку на объект в класс #27
Цитата Сообщение от Helldrg Посмотреть сообщение
Ну я так подумал лучше открывать файл для записи только один раз и закрывать тоже только 1. Инитиалайз в самом начале поставил в мейне и все)
для инициализации существует конструктор
Цитата Сообщение от Helldrg Посмотреть сообщение
Вы имеете в виду, что нужно сделать проверку типов и значений параметров?
объекты потоков нельзя скопировать, и при попытке передать объект логгера по значению возникнет ошибка, но все же лучше явно запретить копирование логгера
Helldrg
54 / 54 / 1
Регистрация: 10.01.2011
Сообщений: 1,093
23.02.2013, 15:14  [ТС]     Как передать ссылку на объект в класс #28
Цитата Сообщение от Jupiter Посмотреть сообщение
явно запретить копирование логгера
Это как?
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.02.2013, 15:16     Как передать ссылку на объект в класс #29
Цитата Сообщение от Helldrg Посмотреть сообщение
Это как?
C++
1
2
3
private:
    LogClass(const LogClass&);
    LogClass& operator = (const LogClass&);
в с++11:
C++
1
2
3
private:
    LogClass(const LogClass&) = delete;
    LogClass& operator = (const LogClass&) = delete;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2013, 15:18     Как передать ссылку на объект в класс
Еще ссылки по теме:

C++ Как передать объект в функцию
C++ Как передать в функцию ссылку на структуру?
Недопустимый неполный тип , или как передать в функцию указатель на объект класса , или просто объект C++
C++ Подскажите как мне из класса вернуть ссылку на класс
Как правильно передать объект в функцию при использовании многопоточности C++

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
23.02.2013, 15:18     Как передать ссылку на объект в класс #30
Цитата Сообщение от Jupiter Посмотреть сообщение
= delete;
что это значит???

Добавлено через 52 секунды
Цитата Сообщение от Jupiter Посмотреть сообщение
в с++11:
а.. не прочитал. Опять эти новые стандарты, которые не поймёшь зачем вводят.
Был язык Си. Нет, надо было испортить
Yandex
Объявления
23.02.2013, 15:18     Как передать ссылку на объект в класс
Ответ Создать тему
Опции темы

Текущее время: 07:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru