C++ Глюки

2075 / C++ / Додатково / Глюки

 

1. В H-файлі для рядків теж потрібна бібліотека

#include <string>


2. Прототипи функцій

void F1();
int main() { ... }
void F1() { ... }

 
3. Вихід за межі 

int a = 1000000000;
int c = a * a * a;
cout << c;
-402653184

 
4. Неточний тип даних
double a = 5.1;
double b = 5.5;
while (a != b) {
  a += 0.1;
  cout << a << endl;
  if (a > 6) { break; }
}
5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6 6.1
 
 
5. Потрібна ';' після класу

class Date 
{

};

int main() { ... }

 
6. Глюк з додаванням до рядку

#include <string>
cout << "abcd" + 1 << endl;
cout << "abcd" + 2 << endl;
cout << "abcd" + 3 << endl;
cout << "abcd" + 4 << endl;
bcd
cd
d

Рішення: cout << "abcd" + to_string(1) << endl;

 
7. Глюк з об'єктами класів
for (int i = 0; i < 10; i++)
{
  // People people("Andriy"); - помилка
  People* people = new People("Nikita"); // ok
  Student tmp(people);
  student.push_back(tmp);
}