18+ 
Волгоградский форум - Главный форум Волгограда.   

  

Ответ
Волгоградский форум » Программы » Программирование »  С++ модификаторы доступа
Программирование - Средства разработки, СУБД, разработка, внедрение. WEB-технологии.
 
Опции темы Поиск в этой теме
Старый 13.10.2016, 17:20   #26
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
ну вот про чар
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 13.10.2016, 17:58   #27
Redrik Меню пользователя Redrik Мужской
Аватар для Redrik
Участник
Stalingrad
Сообщений: 14020
Сообщение от gerodoth Посмотреть сообщение
ну вот про чар
Дык.

Самый простой тип данных.
Массив восьмибитовых байт.
Redrik вне форума   Ответить с цитированием
Старый 13.10.2016, 21:38   #28
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
сегодня попалась со строковым указателем, так вот
если string * k = "hello"
что выдаст cout << (k += 2)?
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 13.10.2016, 21:53   #29
Redrik Меню пользователя Redrik Мужской
Аватар для Redrik
Участник
Stalingrad
Сообщений: 14020
gerodoth, стремная задачка.
string * k это указатель на массив string-ов он как бы не может быть равен char*
Там или конструктор вида string k = "hello" //без звездочки
Или string * k = {"hello", "the", "world"}; // за синтаксис могу ошибаться, но вроде бы элементы массива в фигурных скобках
Однако в С++ вместо string * k более привычна запись string k[ ]

Для первого случая оператор += должен быть перегружен внутри класса и, скорее всего, cout << (k += 2) выдаст "hello2" //тоже от реализации класса зависит
А для второго случая - "world" или даже ошибку
Redrik вне форума   Ответить с цитированием
Старый 13.10.2016, 21:59   #30
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
можт условия с ошибкой запомнил, но в ответе "llo"
еще раз попадется поправлю
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 14.10.2016, 02:41   #31
sema Меню пользователя sema Мужской
Аватар для sema
Участник
чистый, бритый
Сообщений: 7811
Сообщение от Redrik Посмотреть сообщение
указатель " * " (звездочка) это, на самом деле число
А разве * и & не отдельные операторы (что-то типа разыменования)?

Сообщение от Redrik Посмотреть сообщение
И в большинстве *а это строка, а а[n] = это символ
Что *a, что a[] - результат одинаков. С a[] в ногу чуть сложнее выстрелить.

Сообщение от Redrik Посмотреть сообщение
В первом случае а будет увеличено на один байт (тоесть плюс один). А вот во втором, скорее всего на четыре байта.
На сайзоф (а) я бы сказал

Сообщение от Redrik Посмотреть сообщение
Гораздо удобнее работать со String-ами
В плюсах то со стрингами? Для стрингов перл помоему & греп, сед, аск всю жизнь были. А в сях строки это тот еще гимор. Начиная с того что там есть несколько типов строк (нуль терминайтет, с длинной строки в нулевом байте как в паскакале и так далее)...

Сообщение от Redrik Посмотреть сообщение
Все эти задачки имеют лишь академический интерес.
Зато какой ...

gerodoth, если тяжко с чарами - попробуй с интами. Бери обычный массив ну пусть будет

#define N 10
unsigned int a[]=new int[N];
for(int i=0;i<N;i++)a[i]=N;
и вперед. А потом уже и указатель на массив указателей можно будет оформлять.

Сообщение от Redrik Посмотреть сообщение
онлайновые компиляторы должны где-то быть.
Это не спортивно. Пусть в уме решает (я ideone.com юзаю)

Сообщение от gerodoth Посмотреть сообщение
по моей логике и я от нее пока не отвык указатель должен был быть типа строка
Указатель не должен быть никакого типа в этом и фишечка. Указатель [как переменная] это адрес ячейки памяти. void *a и вперед. хочешь cout<<(int*)a, хочешь cout<<(char*)a - тут самое главное ногу не прострелить
Я по большей степени безплюсонасильник, там со сканфами и принтфами по началу чуть сложнее, а затем легче.

Сообщение от Redrik Посмотреть сообщение
Массив восьмибитовых байт.
А бывают не восьмибитные байты? Кстати даже short int это помоему 16 бит в х86 архитектуре, а целое 0-255 я даже и не припомню с ходу такой тип. в паскакале помоему какой-то интеджер был
(byte 0…255 1 как гугол подсказывает)

Сообщение от Redrik Посмотреть сообщение
string * k это указатель на массив string-ов он как бы не может быть равен char*
Может.
Сообщение от gerodoth Посмотреть сообщение
можт условия с ошибкой запомнил, но в ответе "llo"
Нет, все верно. Мы сам указатель (адрес ячейки памяти) увеличиваем на два, так как указатель на строку и указатель на символ - это указатель на ячейку памяти (в первом случае не понятно какой длинный будет строка но это специально, что бы легче было ногу прострелить; во втором случае строка длинной 1 символ) - получается *(k+2)=k[2]. Ну и я бы для надежности string * k = "hello\x0" бы сделал.
Сообщение от Redrik Посмотреть сообщение
но вроде бы элементы массива в фигурных скобках
"Не все так однозначно"
Указатель на строку всё-таки не равен указателю на массив указателей.
string **str_ptr=new *string[3];
str_ptr[0]=*string="hello\x0";
str_ptr[1]=*string="the\x0";
str_ptr[2]=*string="world\x0";
как-то так
пс: куда мы катимся.... консультации по обучению сям на форуме... там где онлайн лекции преподавателю вопросы нельзя задавать?
__________________
Не такая уж большая разница - быть физиком или шизофреником. Но физики более опытны в обращении со своими галлюцинациями, которые они называют "моделями" или "теориями" (c).

Последний раз редактировалось sema; 14.10.2016 в 03:22.
sema на форуме   Ответить с цитированием
Старый 14.10.2016, 06:30   #32
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
Сообщение от sema Посмотреть сообщение
там где онлайн лекции преподавателю вопросы нельзя задавать?
жалко его, я его по текущим темам так гружу что он злиться начинает а иногда перестает отвечать. человек по 50 на вебинарах, а все молчат, один я гружу.
ну и он странный, 6ю пару подряд рассказывает про память, указатели, указатели на указатели, без примеров применения опять же это непонятно сходу зачем.
мол 2 системы именования переменных - по имени переменной и по указателю. плюс указателя тем что ему можно тип менять - ну дак описали б в языке что переменной можно тип менять и не грузились бы так. сами создали проблему, сами решили - ай красавцы.
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
  
Старый 14.10.2016, 06:52   #33
sema Меню пользователя sema Мужской
Аватар для sema
Участник
чистый, бритый
Сообщений: 7811
Сообщение от gerodoth Посмотреть сообщение
жалко его, я его по текущим темам так гружу что он злиться начинает а иногда перестает отвечать. человек по 50 на вебинарах, а все молчат, один я гружу.
Как я его понимаю. Тут в соседней теме один столько вопросов задает что вчетвером отвечать не успеваем.
Сообщение от gerodoth Посмотреть сообщение
странный, 6ю пару подряд рассказывает про память, указатели, указатели на указатели, без примеров применения опять же это непонятно сходу зачем.
Такая методология преподавания. Этим си и силен. Плюс это тру теория, её иногда надо просто выучить и запомнить, не особо вникая, если вникалка слабая.
Сообщение от gerodoth Посмотреть сообщение
плюс указателя тем что ему можно тип менять - ну дак описали б в языке что переменной можно тип менять и не грузились бы так. сами создали проблему, сами решили - ай красавцы.
Это называется преобразование типов - оно есть во многих языках. Но все языки разные - гибкая работа с памятью - сила си. На си даже на контроллеры можно писать прошивки и код чуть менее эффективнее ассемблера.
Сообщение от gerodoth Посмотреть сообщение
сами создали проблему, сами решили - ай красавцы.
Да не было никакой проблемы.
__________________
Не такая уж большая разница - быть физиком или шизофреником. Но физики более опытны в обращении со своими галлюцинациями, которые они называют "моделями" или "теориями" (c).
sema на форуме   Ответить с цитированием
Старый 14.10.2016, 07:02   #34
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
а вот про контроллеры может пригодиться, полезно.
я тут недавно стал в питон лезть, товарищ что мне питон когда рекламировал говорил что тот си-подобный. а поуглублявшись и решив что пора практиковаться выяснил что питон под винду компилировать не особо то и принято, он в консоли силен, а для тех целей мне повершела с цмд хватало. и у меня винда везде, на работе из-за 1с, дома из-за проприетарных железок. хотя поначалу питон попроще си, но тут начали курс читать, дай, думаю, в си полезу. пока лезу не особо понимаю зачем, с окошками что-то могу на лазарусе накидать, с консолью тоже дружу, а вот контроллеры могут пригодиться.
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 14.10.2016, 07:05   #35
sema Меню пользователя sema Мужской
Аватар для sema
Участник
чистый, бритый
Сообщений: 7811
Сообщение от gerodoth Посмотреть сообщение
питон под винду компилировать
Питон - интерпретатор. Хотя тоже сильный язык.
Существует набор справочников. Справочники подразделяются по типу
хранилища (файлы, БД, удаленный ресурс). Хранилища отличаются параметрами
доступа. Например, для файла указывается только имя, для удаленного ресурса
URL, а для БД IP и порт. Каждый из источников содержит строку с данными.
Возможно расширение другими источниками данных, содержащими отличающийся и
заранее неизвестный набор параметров. Справочники различаются форматом
данных (JSON, YAML, XML).
А вот такое на питоне смогёшь?
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 28
Размер:	59.7 Кб
ID:	213727  
__________________
Не такая уж большая разница - быть физиком или шизофреником. Но физики более опытны в обращении со своими галлюцинациями, которые они называют "моделями" или "теориями" (c).
sema на форуме   Ответить с цитированием
Старый 14.10.2016, 08:39   #36
Redrik Меню пользователя Redrik Мужской
Аватар для Redrik
Участник
Stalingrad
Сообщений: 14020
Сообщение от sema Посмотреть сообщение
А разве * и & не отдельные операторы (что-то типа разыменования)?
Дык... вроде нет.
Вроде это особый тип данных - указатели
Прикольно например использовать конструкцию что-то типа
short int *a = {\x33, \x31, \x32, \x33, \x34, \x35 \ x00} ;
cout << (char *) a ;
// за синтаксис не ручаюсь - давно такой бадягой не пользовался

Сообщение от sema Посмотреть сообщение
С a[] в ногу чуть сложнее выстрелить.
Таки стреляет.
Падла.

Пробовал.
Получается

Сообщение от sema Посмотреть сообщение
На сайзоф (а) я бы сказал
Ну не стал я городить огород. Зачем новичку сайзофы ? нью,, алоки/малоки, конструкторы/деструкторы.
Хотя ничего в них сложного ни разу. Но когда в голове громоздится каша - это не есть гуманно.
Сообщение от sema Посмотреть сообщение
А в сях строки это тот еще гимор.
Так и хочется сишных авторов библиотек аннигилировать.
Единственная реализация С++ это Qt где со строками (стрингами) работать не настолько мозговыносяще, как в других реализациях.
Но Кют в среде просвещенной программистской интеллигенцией идет за западло.
Среда для поделок
Сообщение от sema Посмотреть сообщение
тяжко с чарами - попробуй с интами
Ему конкретную задачку надо решить.
Вот он с чарами и заморочился.
Сообщение от sema Посмотреть сообщение
Это не спортивно. Пусть в уме решает (я ideone.com юзаю)
Тык он не в спортшколе, а в началке. Ему втукнуть надо в синтаксис языка и привыкнуть к нему.
Онлайн тренажоры самое то. Ну чтоб не заморачиваться себе собственный десктоп не ставить бормана или еще какого визуал шарпа.
Сообщение от sema Посмотреть сообщение
А бывают не восьмибитные байты?
Ты заметил
Специально такую конструкцию написал. Чтоб доходчивее было.
Сообщение от sema Посмотреть сообщение
Кстати даже short int это помоему 16 бит в х86 архитектуре, а целое 0-255 я даже и не припомню с ходу такой тип. в паскакале помоему какой-то интеджер был
(byte 0…255 1 как гугол подсказывает)
Да они (разработчики языков) - задолбали уже.
В зависимости от архитектуры процессора одни и те же переменные имеют разные сайзоффы.
Напишешь для одного - все путем. На другой платформе - не работает. И начинаются (цуко!!!) танцы с бубнами.
Одно дело когда ты пишешь и косяки сразу же видны по ходу написания.
Другое - когда прога уже написана - вот тогда отыскать косяк - сущий гемор. Особенно, если он неочевидный.
Сообщение от sema Посмотреть сообщение
Может.
Эт если оператор "=" перегружен. Но не факт.
Хотя.... в последнее время, наверняка уже все библиотеки этот оператор перегрузили.
Убедил. Теоретически НЕ может, в реальности - таки да.
Сообщение от sema Посмотреть сообщение
string **str_ptr=new *string[3];
str_ptr[0]=*string="hello\x0";
str_ptr[1]=*string="the\x0";
str_ptr[2]=*string="world\x0";
Хм..... чето-то тут не так
Redrik вне форума   Ответить с цитированием
Старый 14.10.2016, 09:02   #37
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
Сообщение от sema Посмотреть сообщение
такое на питоне смогёшь?
походу никак не смогу, с сетями я не сталкиваюсь, только пользуюсь тем что есть, у меня в основном с локальными данными работа.

Сообщение от Redrik Посмотреть сообщение
Зачем новичку сайзофы ?
сайзофы были в начале в обоих курсах


Сообщение от Redrik Посмотреть сообщение
отыскать косяк - сущий гемор
в 1с отладкой удобно, я прям привык уже к ней почти.
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 14.10.2016, 11:49   #38
RubiN Меню пользователя RubiN Мужской
Аватар для RubiN
Участник
Волгоград
Сообщений: 5007
может пригодится кому... - https://www.visualstudio.com/ru/license-terms/mt171547/
__________________
Бочка, петля, боевой разворот - это курсант на посадку идёт.
RubiN вне форума   Ответить с цитированием
Старый 18.10.2016, 20:25   #39
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
про наследование классов
допустим создаем класс с двумя родителями. создаем объект класса. память выделается под объекты всех трех классов? не накладно?
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 19.10.2016, 16:38   #40
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
#include <iostream>
using namespace std;
class A{
public:
int x;
A(int x){this->x=x/2;}
A(A &p){p.x = 4; x=1;}
};
int main() {
A p1(4);
cout<<p1.x;
}
еще задачка, переписал, откомпилировал, но смысла не понял.
что эта строка делает? A(A &p){p.x = 4; x=1;}
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 19.10.2016, 19:54   #41
Capitan Alex Меню пользователя Capitan Alex Мужской
Участник
Волгоград
Сообщений: 6965
Сообщение от gerodoth Посмотреть сообщение
что эта строка делает? A(A &p){p.x = 4; x=1;}
Ну насколько я помню со своими остаточными знаниями, то у класса здесь два конструктора. Первый запускается, когда конструктору передаётся число типа int, второй запускается если конструктору передаётся объект типа A.

A p1(10); // запускается конструктор 1
A p2(p1); // запускается конструктор 2

Соответственно эта строка свойству х объекта p1 присваивает 4, а свойству x объекта p2 присваивает 1.
В примере, как он указан выше, данный конструктор № 2 действительно ничего не делает, но для чего он в принципе может понадобиться я объяснил выше.

По-моему так, хотя может я и ошибаюсь, давно всё это изучал.
__________________
Труднее всего объяснить очевидные вещи.

Последний раз редактировалось Capitan Alex; 19.10.2016 в 20:28.
Capitan Alex вне форума   Ответить с цитированием
Старый 19.10.2016, 20:13   #42
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
вроде да, попалась потом похожая
косяк задач в том что они на время, секунд 10-15 дается, текст не скопировать и неправильные ответы не разбираются, существенный минус как по мне. я их скриню и переписываю потом.
а иногда вроде ответ знаешь, а не правильный, а текст задачи не вспомнишь. неудобно таки.
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 19.10.2016, 22:23   #43
sema Меню пользователя sema Мужской
Аватар для sema
Участник
чистый, бритый
Сообщений: 7811
Сообщение от gerodoth Посмотреть сообщение
косяк задач в том что они на время, секунд 10-15 дается, текст не скопировать и неправильные ответы не разбираются, существенный минус как по мне.
Это не задач косяк. А образованию по этим вашим видеолекциям и прочим вебинарам.
__________________
Не такая уж большая разница - быть физиком или шизофреником. Но физики более опытны в обращении со своими галлюцинациями, которые они называют "моделями" или "теориями" (c).
sema на форуме   Ответить с цитированием
Старый 20.10.2016, 16:35   #44
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
может и так
лектора я попытался понапрягать вчера, лекции по средам, он прям нервничает, похоже трогать его не стоит, придется вас.

#include <iostream>
using namespace std;
template <class T>
void f(T){
static int i=0;
cout <<++i;
}
int main(){
f(1);
f(1.0);
f(1);
}
почему возвращается 112? почему 2 в конце?

---------- Сообщение добавлено 20.10.2016 17:40 ----------

а до меня начинает доходить
первый раз передается инт, и повторный вызов ссылки на него работает с той же переменной
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 20.10.2016, 18:10   #45
Дмитрий Н Меню пользователя Дмитрий Н Мужской
Аватар для Дмитрий Н
Участник
World Wide Web
Сообщений: 359
Шаблонная функция f() по по факту будет скомпилирована в две функции:
void f(int);
void f(float);
В main() два раза вызывается f(int), поэтому второй раз 2 в консоли...
Дмитрий Н вне форума   Ответить с цитированием
Старый 20.10.2016, 22:17   #46
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
а гипотетически если объявить константой число, а потом через указатель численного типа попробовать его поменять - получится?
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 21.10.2016, 02:13   #47
Дмитрий Н Меню пользователя Дмитрий Н Мужской
Аватар для Дмитрий Н
Участник
World Wide Web
Сообщений: 359
Не обязательно гипотетически, можно на живую - следующий код, если я правильно понял условие выше, будет выбрасывать обшибку, вполне ожидаемую:

dmitry@mbp:~/tmp/gerodoth$ cat test.cpp
#include <iostream>

using namespace std;

template< class T >
void f(T) {
static const int i = 0;
const int* pi = &i;
cout << ++*pi;
}

int main() {
f(1);
f(1.0);
f(1);
}
dmitry@mbp:~/tmp/gerodoth$ g++ test.cpp -o test
test.cpp:9:13: error: read-only variable is not assignable
cout << ++*pi << endl;
^ ~~~
1 error generated.
Дмитрий Н вне форума   Ответить с цитированием
Старый 21.10.2016, 07:00   #48
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
идея не показывать что указатель на постоянную
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Старый 21.10.2016, 12:27   #49
Дмитрий Н Меню пользователя Дмитрий Н Мужской
Аватар для Дмитрий Н
Участник
World Wide Web
Сообщений: 359
Плохая идея, язык C/C++ сильно типизирован, т.о. компилятор ругнётся на несоответствие типов указателя и переменной .
Дмитрий Н вне форума   Ответить с цитированием
Старый 22.10.2016, 16:54   #50
gerodoth Меню пользователя gerodoth
Аватар для gerodoth
Участник
Бобруйск
Сообщений: 7620
еще мутный пример

#include <iostream>
using namespace std;

int &func()
{
static int x=3;
return x;
}
int main(){
func()=8;
cout<<func();
}

функции без параметров присваивается число, как это?

---------- Сообщение добавлено 22.10.2016 18:45 ----------

на память оставлю, ниче не понял
#include <iostream>
using namespace std;

class X{
private:
int x,y;
public:
X():x(0),y(0){}
void show(){cout<<x<<y;}
X& operator()(int dx, int dy){
x=dx-1;
y=dy+1;
return *this;
}
};
int main(){
X pt;
pt(3,2);
pt.show();
}
__________________
быть пессимистом потрясающе. я всегда или прав, или приятно удивлён.
gerodoth вне форума   Ответить с цитированием
Программирование - Средства разработки, СУБД, разработка, внедрение. WEB-технологии.
Волгоградский форум » Программы » Программирование »  С++ модификаторы доступа
Ответ

Кликай, преобретай выгодней со скидкой по промокоду "Галактика" в KNS - картридж Samsung - всегда быстро, выгодно и удобно.стул омега 5 купитьпойти учиться на курсы менеджер по персоналуSeiko Wall Clocks QXL007Sстол кухонные железныу б/у

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Точка доступа по WiFi нет доступа, по LAN есть TEST Интернет 3 20.02.2010 12:07
Точка доступа LAN54 Компьютеры 6 10.12.2009 13:56
Точку доступа Wi-Fi swer Куплю 2 12.12.2007 18:36
Модификаторы ржавчины Залетный гость Домоводство 1 02.09.2004 00:54
Нет доступа jack МегаФон 8 19.02.2003 11:24

© 2001 - 2016 ВОЛГОГРАДСКИЙ ФОРУМ
Полное или частичное копирование материалов с сайта разрешено только при обязательном указании автора и прямой гиперссылки на материал.
Rambler's Top100 Рейтинг@Mail.ru