1

(16 відповідей, залишених у C++)

adziri, Дякую!
koala, ох же мене насмішили!  :D в тій темі що ви показали, посилання лиш на одну книжку. Без посилань 5 книг. "Гляньте". Глянув би, аби було на що. От візьміть всі посилання у всіх темах на книжки як от в цій темі запостив adziri, створіть html сторінку і туди по порядку запостіть. Так роблять всі форуми. Навіщо тема з купою сміття і не потрібних обговорень і лише з 1 посиланням на книгу? я спочатку думав що ви щось нормальне дали

2

(16 відповідей, залишених у C++)

Христос Воскрес!
такий я невіруючий що навіть не написав, в сусідньому розділі KIT написав, то і я згадав, а так би і не згадав що Пасха сьогодні   *SORRY* 
koala, можете мені показати той підручник? а то я вже давно шукаю. по сі толкові (старі радянські) є, по с++ немає.

3

(16 відповідей, залишених у C++)

Дякую. Трохи прояснилося. Але все ж не зовсім зрозуміло, нащо розробники залишили можливіть редагувати хеадери і залишили клас basic_srting, а не перевели все це в асемблерний код одразу.  Ну якщо вказати неправильні параметри і він буде себе поводити неочікувано. Іще я не розумію а яким чином можна в с++ назначити дію якомусь знаку, + чи -? Для цього є якість команди? Чи як їх назвати незнаю.

4

(16 відповідей, залишених у C++)

Я зрозумів по шаблонах. Тобто, якщо написати

template <typename T>
class MyClass
{
   public:
      T a;
      T b;
      T c;
      void sum(){c=a+b};
      void min(){c=a-b};
      void mn(){c=a*b};
      void dila{if (b!=0) c=a/b};
      void dilb{if (a!=0) c=b/a};
};

то якщо написати

MyClass <int> mc;

то це еквівалент

class MyClass
{
   public:
      int a;
      int b;
      int c;
      void sum(){c=a+b};
      void min(){c=a-b};
      void mn(){c=a*b};
      void dila{if (b!=0) c=a/b};
      void dilb{if (a!=0) c=b/a};
};

а якщо

MyClass <double> mc;

то

class MyClass
{
   public:
      double a;
      double b;
      double c;
      void sum(){c=a+b};
      void min(){c=a-b};
      void mn(){c=a*b};
      void dila{if (b!=0) c=a/b};
      void dilb{if (a!=0) c=b/a};
};

і так далі тобто компілятор замінює T на будь-який тип, вказаний

MyClass <тип> mc;

Я правильно зрозумів? Я сказав би  що аналог

#define T int
class MyClass
{
   public:
      T a;
      T b;
      T c;
      void sum(){c=a+b};
      void min(){c=a-b};
      void mn(){c=a*b};
      void dila{if (b!=0) c=a/b};
      void dilb{if (a!=0) c=b/a};
};

але що скаже компілятор, якщо в типі вказати наприклад

MyClass <char*> mc;

?
тобто що попало вказувати не можна?
тобто це дає підстави вважати, що професійно string є не серйозним типом і його використовувати для написання серйозних програм не можна, краще char*?

5

(16 відповідей, залишених у C++)

Дякую, проте мені потрібна повна інформація, щоб логічно розуміти, що відбувається.
Зайшов в хеадери

typedef basic_string<char>    string;
typedef basic_string<wchar_t> wstring;

Виявляється є ще й wstring.
а це не зрозумів

typedef basic_string<char16_t> u16string; 
typedef basic_string<char32_t> u32string; 

а далі - тупик.
юзаю dev-cpp в файлі написано

#include <bits/c++config.h>

я по ньому клікаю ctrl+клік. не відкриває. зайшов провідником в папку bits, такого файлу немає...
зате в папці бітс є файл basic_string.h
а в файлі є клас basic_string, який хоч трохи дає зрозуміти що там.

але мені не дає зрозуміти все одна лише річ. що означають всі ці записи <> в отаких скобках?

6

(16 відповідей, залишених у C++)

я знаю що char-и це коди символів, тобто все в пам'яті має тільки числове значення, побітно 0 і 1. інтерпретатор переводить ці коди відповідно до типу. коди символів переводяться в картинку шрифту, бо символ це по суті картинка, яка відповідає коду. до char можна застосовувати додавання і т.д., але ж не до масиву.
мені б саме визначення string тобто щось наподобі

struct string
{
//...
};

я написав попередньо що я програміст сі, але я мав на увазі що я сі знаю краще, ніж плюси. насправді сі я знаю поганенько

7

(16 відповідей, залишених у C++)

я програміст сі, читаю книжку плюсів, написано

string a=" ";
string b;
while(cin>>b)
{
   if (a==b) cout << "Слово співпадає з попереднім" << endl;
   if (a>b) cout << "Останнє слово в алфавітному порядку перед даним" << endl;
   if (a<b) cout << "дане слово в алфавітному порядку перше, останнє за ним" << endl;
   a=b;
}

Як можна порівнювати строчки? Загублюється логіка сі. Як це одна строчка менше іншої? Ну менше скажімо по розміру, тут логіка ще є. Але як може бути меншою символьно? Чи це йде порівняння суми всіх кодів букв?