Я в этом не шарю
4 / 4 / 3
Регистрация: 03.09.2014
Сообщений: 191
|
||||||||||||||||
1 | ||||||||||||||||
Есть ли способ, зная ссылку на класс, использовать его значения без запроса по ссылке?19.11.2014, 11:45. Показов 1679. Ответов 32
Метки нет (Все метки)
скажем есть 2 класса
можно ли в функциях Func обращаться к данным и функциям из ItemList не обращаясь постоянно к ссылке itemlist? т.е. вот так
есть using namespace std, но я не знаю как это работает. я - самоучка. Добавлено через 5 минут даже чтобы ItemList был struct
0
|
19.11.2014, 11:45 | |
Ответы с готовыми решениями:
32
Есть ли способ использовать оператор And в операторе Rlike? (mysql) Использовать массивы или есть более элегантный способ? Корректно ли использовать ссылку без контента? Как удалить GET параметры в ссылке, и сразу новую, удалённую ссылку, без перезагрузки страницы, отразить на сайте? |
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
|
|
19.11.2014, 17:21 | 2 |
Три раза прочитал, так и не понял, что ты пытаешься сделать? Зачем классы ссылаются друг на друга?
Нет, нельзя.
0
|
Я в этом не шарю
4 / 4 / 3
Регистрация: 03.09.2014
Сообщений: 191
|
|||||||||||
20.11.2014, 15:35 [ТС] | 3 | ||||||||||
nmcf, я хочу избавиться в коде от ссылок типа
т.е. как у using namespace std если писать без него будет std::cout<<"text"<<std::endl; а если в начале написать using namespace std то можно будет писать просто cout<<"text"<<endl; я хочу так же сделать, но со своими классами
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|||||||||||
20.11.2014, 15:47 | 4 | ||||||||||
Добавлено через 2 минуты тогда можно будет писать вот так
0
|
Я в этом не шарю
4 / 4 / 3
Регистрация: 03.09.2014
Сообщений: 191
|
|
20.11.2014, 16:29 [ТС] | 5 |
aLarman, а можно попподробней объяснить, как это работает?
class Func { public: Func(ItemList&itemlist):count(itemlist.count) { item = itemlist.item; } ItemList*itemlist; bool AddItem(int id); void Clear(); private: int & count; int * item; }
0
|
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
|
||||||||||||||||
20.11.2014, 17:04 | 6 | |||||||||||||||
поля-атрибуты объекта типа Func инициализируются (одна через список инициализации, вторая - в теле конструктора) полями объекта ItemList, переданного в конструктор по ссылке
Добавлено через 2 минуты это можно переписать так:
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
20.11.2014, 17:10 | 7 |
mss307, первые 2 варианта не подойдут, ссылка должна инициализироваться в списке инициализации
Добавлено через 1 минуту ну а второй вариант вообще не будет работать
1
|
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
|
|
20.11.2014, 17:10 | 8 |
ой, блин, согласен на все 100. столько count развели тут, блин.
пппфффф, пора мне домой. второй вариант можно было и не выделять, первый же тоже работать не будет)
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
20.11.2014, 17:15 | 9 |
суть в том что, в класс Func (cтранное название вообще то), мы объявляем переменные с такими же именами что и в классе ItemList, и создаем на них ссылки, для count - ccылка на int т.е int&count;
а для item указатель на начало массива т.е int*item, и соответственно в конструкторе Func ссылку инициализируем переменно ItemList::count, а указатель началом на массив item Добавлено через 1 минуту Не по теме: Так же рекомендую, если Вам интересно почитать про список инициализации конструктора
0
|
28 / 5 / 1
Регистрация: 18.11.2014
Сообщений: 68
|
||||||
20.11.2014, 17:39 | 10 | |||||
0
|
Я в этом не шарю
4 / 4 / 3
Регистрация: 03.09.2014
Сообщений: 191
|
|
21.11.2014, 12:04 [ТС] | 11 |
Огромное спасибо всем.
Вы спасли меня
0
|
Я в этом не шарю
4 / 4 / 3
Регистрация: 03.09.2014
Сообщений: 191
|
|
28.11.2014, 11:04 [ТС] | 12 |
А как сделать например ссылку на функцию?
чтобы вместо Func->Add() вызывать просто Add()?
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|||||||||||
28.11.2014, 11:40 | 13 | ||||||||||
да
А нет, Вызов все равно будет такой (itemlist->*Add)(); ну все логично, всегда надо указывать объект для которого вызывается ф-ция член Добавлено через 1 минуту ну или завернуть этот вызов в ф-цию слен класса Func
чет я не щдля того класса сделал, короче, чтобы не писать Func->Add() создайте такую же ф-цию в класса, и из нее вызывайте Func->Add()
0
|
Я в этом не шарю
4 / 4 / 3
Регистрация: 03.09.2014
Сообщений: 191
|
||||||
29.11.2014, 13:22 [ТС] | 14 | |||||
т.е. ссыку на функцию нельзя получить.
а как же тогда замена кода окна?
0
|
Я в этом не шарю
4 / 4 / 3
Регистрация: 03.09.2014
Сообщений: 191
|
|
02.12.2014, 10:54 [ТС] | 15 |
я просто хотел вместо item->data->recbuff->readuint()
использовать просто конечный readuint()
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
02.12.2014, 11:08 | 16 |
че это можно, тока не ссылку а указатель, проблема в том чтобы ее вызвать нужен объект все равно, либо делать ф-цию не членом класса
0
|
Я в этом не шарю
4 / 4 / 3
Регистрация: 03.09.2014
Сообщений: 191
|
||||||
04.12.2014, 10:16 [ТС] | 18 | |||||
Kastaneda, это сложнее в исполнении.
aLarman, можно поподробнее. очень хотелось бы облегчить код. а то частенько выходят вот такие вагоны
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||||||
04.12.2014, 10:22 | 19 | |||||
0
|
Я в этом не шарю
4 / 4 / 3
Регистрация: 03.09.2014
Сообщений: 191
|
|
04.12.2014, 15:45 [ТС] | 20 |
aLarman, т.е. подругому ReadStr() из класса file вызвать нельзя?
0
|
04.12.2014, 15:45 | |
04.12.2014, 15:45 | |
Помогаю со студенческими работами здесь
20
Как получить id элемента, зная только его класс? Вывод значения DisplayMember, зная его ValueMember Как можно объявить класс, заранее не зная его тип template. Есть ли способ изменить значения в массиве за одну операцию? Как скопировать файл, зная только его имя без расширения? Есть ли способ узнать, что данные отправляются без нашего ведома? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |