Шаблон за променливи или име на променлива?
Здравей, Живко!
В 00:42:10 - 00 42:30 от видеото "Exercise: Advanced Class Members and Code Organization"/21.1.2019 обясняваш, че
Това Naming е името на променливата... име на променливата и нищо друго...
Значи, имаме някаква променлива(Naming??) и ето (с??) този синтаксис тип на променливата (e??) translator...
От казаното се разбира, че името на променливата е Naming, a типът на променливата е translator. В предишното видео пак говореше същото(ако искаш, ще го прегледам наново, за да намеря къде точно?). Наистина ли с typename се създават променливи или аз не съм те разбрал?
Ами да:
шаблоните също имат имена, но не са имена на променливи!
Можеш ли да кажеш нещо за typeid - как да проверим какво* произвежда ИМЕТО НА ШАБЛОНА?
*променливи от какъв тип
Пусни си този код и ще видиш.
"Naming" е каквото си поискаш. Каквото му подадеш това ще бъде. Не произвежда нищо просто го поставяш за да знае програмата че там очаква тип и ако го разпознае като тип и може да извърши операциите който си му задал ще ги изпълни.
Представи си го на лист хартия и на всякъде кадето пише "Naming" вместо това пише много точки "................". На точките с химикал си попълни какъв тип искаш.
ето защо може да е каквото и да е, само и само не може да е променлива. Променливите винаги съдържат СТОЙНОСТ (ако не я инициализираш изрично, тя ще бъде случайна; но непременно през името на променливата ще достъпим някаква стойност).
Имената на шаблоните не съдържат никаква стойност, също както и имената на класовете. С тях се създават променливи (създаваните от класове променливи наричаме "обекти").
Досега в курсовете се случваше лекторът да обърка "клас" с "обект" и аз мислех, че е грешка на езика. Не исках да издребнявам, макар че се обърквам и не мога да разбера какво говори. Сега разбирам, че не е грешка в бързината, а нещо друго... Явно си прав - не трябва да слушам внимателно, а да гледам да реша задачите...
@zzero, коментарът ти наистина ме хвърля в трета глуха.
Съжалявам, че съм объркал (взаимно заменил) "клас" и "обект".
Казвам го без лоши чувства:
Изказването ти "не трябва да слушам внимателно, а да гледам да реша задачите..." е грешно.
Винаги в рамките на този и на предишния курс съм повтарял, че се старая да ви науча, а не просто да си изпея материала и да си ходя.
Затова и постоянно се мъча да ви снабдявам с любопитни факти от практиката, които няма да ги видиш в слайдовете.
Напротив, трябва да слушаш внимателно, но трябва и да отчетеш няколко други фактори:
1) Занятията са колекция от:
- преподаване на лектора (в случая аз)
- записки в лекцията (слайдове)
- демотата, които разглеждаме
- изводи, които извличаме от дискусиите по време на лекцията.
2) Аз не съм робот (човек съм и правя грешки)
3) Не е изключено някъде в слайдовете да има допусната грешка. Тя няма да е умислена, но все пак има такава възможност.
Тъй като обучителния процес е колекция от тези неща - ако нещо е сбъркано (в случая аз съм казал някоя глупост) - винаги можеш да провериш дали дадено твърдение е вярно като го свириш с един от другите източници.
Не твърдя, че ще си го помислиш, но все пак, ако след това мое изказване има някой, който си мисли:
"ама... аз сега, ако трябва да следя всяко твое изказване дали е вярно...то какъв е смисъла от този курс...аз нали затова си плащам да ме обучават".
Веднага ще контрирам с факта, че по тая логика на мен ми плащат да преподавам, а не да ви науча.
Аз няма да говоря глупости умишлено и не го и правя.
Поздрави
Да говорим конкретно. Ето слайда към твоето обяснение:
100 пъти го гледах и все още не виждам "променливата Naming", за която ти така настойчиво говориш. Ти виждаш ли я? Тя каква стойност има(щом казваш, че е от тип translator)?