c ++ различные базовые типы при преобразовании переменных - PullRequest
0 голосов
/ 28 февраля 2012

c ++ проблема различных базовых типов при преобразовании переменных Да, глупая проблема, но я новичок в C ++ и IDK, в чем проблема.

У меня есть этот код:

#include <iostream>
using namespace std;
int main()
{
float a = 54;
cout << a;
double(a);
cout << a;
return 0;
}

и это ошибки:

  • ошибка C2371 : 'a': переопределение; разные основные типы линий 7
  • ошибка C2088 : '<<': недопустимо для строки класса 8 </li>

почему написано: различные базовые типы , когда я конвертировал только float в double? а что значит вторая ошибка? какой класс линии ?

и у меня тоже есть этот вопрос: могу ли я преобразовать 2 переменные с различными базовыми типами, например int в строку? и это так же, как преобразование е.е. поплавок или другой?

Вот экран печати во время отладки проекта в VC ++ 2010

1 Ответ

0 голосов
/ 28 февраля 2012

Вы уже объявили 'a' как float, и компилятор считает, что вы пытаетесь переопределить его как double. Попробуйте это:

#include <iostream>
using namespace std;
int main()
{
    float a = 54;
    cout << a;
    double b(a);
    cout << b;
    return 0;
}

Насколько ваш второй вопрос:

Могу ли я преобразовать 2 переменные с различными базовыми типами, например int to строка? и это так же, как преобразование е.е. удвоить или отличается?

Ответ заключается в том, что вы не можете преобразовать их неявно или даже напрямую (и заставить их сохранить их значение), но вы, безусловно, можете использовать такие средства, как std::stringstream и т. Д., Чтобы выполнить преобразование для вас. С другой стороны, преобразование из float в double является неявным преобразованием, которое компилятор сделает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...