29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте! Подскажите, пожалуйста, почему не работает:
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");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2013, 00:39
Ответы с готовыми решениями:

Как передать ссылку на объект в функцию
Есть два класса допустим Entitit и Map, в Map есть переменная допустим Time которая изменяется...

Как в порождаемый класс передать ссылку на основной класс?
Основной класс: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include...

Как в пользовательский тэг передать ссылку на объект созданный в скриплете?
В jsp, в скриплете создается объект. Можно ли его как-то передать в пользовательский тэг и там...

Как передать ссылку по клику в другой класс?
как передать ссылку по клику в другой класс есть класс парсера вот часть кода protected...

29
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
22.02.2013, 16:10 21
Author24 — интернет-сервис помощи студентам
ITcrusader,
C++
1
2
3
4
5
6
7
#pragma once
#ifndef HEADER_H
#define HEADER_H
 
// тут все содержимое заголовочного файла...
 
#endif
Ну уж либо одно, либо другое.
1
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 16:46 22
Цитата Сообщение от Helldrg Посмотреть сообщение
Вы имеете ввиду реализацию класса в .сpp делать а прототипы в .h?
Да. Кроме шаблонов.
1
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
22.02.2013, 19:08  [ТС] 23
Ну это хорошо я всегда так пишу))
А если шаблоны писать в классе то потом ошибки не будет?(Это просто так еще раз уточнить)
И еще, помните я говорил, что хороший ли это способ создания логера(журнала) ошибок, так вот можете на него ответить?) Может быть в сpp есть функция или еще что то, которая выводит ошибки или сохраняет их. Или может класс лучше переписать, что бы был более как бы так сказать быстрее что ли или проще)
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 19:28 24
Цитата Сообщение от Helldrg Посмотреть сообщение
А если шаблоны писать в классе то потом ошибки не будет?
Прототип шаблона и его реализация должны быть в одном файле(но не специализация).
Цитата Сообщение от Helldrg Посмотреть сообщение
И еще, помните я говорил, что хороший ли это способ создания логера(журнала) ошибок, так вот можете на него ответить?) Может быть в сpp есть функция или еще что то, которая выводит ошибки или сохраняет их. Или может класс лучше переписать, что бы был более как бы так сказать быстрее что ли или проще)
На этот вопрос у меня ответа нет.
1
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
22.02.2013, 19:36 25
Цитата Сообщение от Helldrg Посмотреть сообщение
Или может класс лучше переписать, что бы был более как бы так сказать быстрее что ли или проще)
ну так ответь себе на вопросы:
что будет если программист пользователь твоего кода забудет ввызвать InitializeLog?
а если он(программист) захочет создать несколько логгеров?
а если он передаст объект логгера по значению, а не по ссылке?
1
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
23.02.2013, 00:05  [ТС] 26
Цитата Сообщение от Jupiter Посмотреть сообщение
что будет если программист пользователь твоего кода забудет вызывать InitializeLog?
Ну я так подумал лучше открывать файл для записи только один раз и закрывать тоже только 1. Инитиалайз в самом начале поставил в мейне и все)
Цитата Сообщение от Jupiter Посмотреть сообщение
а если он передаст объект логгера по значению, а не по ссылке?
Вы имеете в виду, что нужно сделать проверку типов и значений параметров?
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
23.02.2013, 03:33 27
Цитата Сообщение от Helldrg Посмотреть сообщение
Ну я так подумал лучше открывать файл для записи только один раз и закрывать тоже только 1. Инитиалайз в самом начале поставил в мейне и все)
для инициализации существует конструктор
Цитата Сообщение от Helldrg Посмотреть сообщение
Вы имеете в виду, что нужно сделать проверку типов и значений параметров?
объекты потоков нельзя скопировать, и при попытке передать объект логгера по значению возникнет ошибка, но все же лучше явно запретить копирование логгера
1
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
23.02.2013, 15:14  [ТС] 28
Цитата Сообщение от Jupiter Посмотреть сообщение
явно запретить копирование логгера
Это как?
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
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;
1
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,483
Записей в блоге: 1
23.02.2013, 15:18 30
Цитата Сообщение от Jupiter Посмотреть сообщение
= delete;
что это значит???

Добавлено через 52 секунды
Цитата Сообщение от Jupiter Посмотреть сообщение
в с++11:
а.. не прочитал. Опять эти новые стандарты, которые не поймёшь зачем вводят.
Был язык Си. Нет, надо было испортить
1
23.02.2013, 15:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2013, 15:18
Помогаю со студенческими работами здесь

Как правильно передать ссылку в другой класс
Добрый день! Есть класс class ViewController: UIViewController, UITableViewDataSource,...

Как из main передать объект в класс
В классе main я создал объект класса Company public class Main { public static void...

Как передать массив в функцию и класс в объект?
Задача- треугольники у нас, заданы точками которые классы. Надо создать массив из них и вычислить...

Как передать объект с формы на форму (из класса в класс)?
Всем привет. Сижу мучаюсь, сейчас пойду в книжках ответ искать. На форме 1 по клику открывается,...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru