Кто может помочь что это за ошибка в void operato? Не существует подходящего конструктора для преобразования из "int" в "std::basic_string
#include <iostream>
#include <iomanip>
#include<string.h>
#include <string>
using namespace std;
class Phone_number {
public:
string code = "";
string number = "";
string type_number;
//Конструктор для копирования
Phone_number(const Phone_number& v) :
code(v.code),
number(v.number),
type_number(v.type_number) {}
//Конструктор для сравнения
const Phone_number& operator=(const Phone_number& v)
{
code = v.code;
number = v.number;
type_number = v.type_number;
return v;
}
//Простой конструктор
Phone_number(string type) {type_number=type; }
Phone_number(string numb) { number = numb; }
void Fun() {
while (number.length() < 12 || number.length() > 12) {
cout << "Nevirno nabraniy nomer ";
cin >> number;
}
for (int i = 0; number.length() > i; i++) {
if (i == 0) {
cout << "(";
}
else {
if (i == 3) {
cout << ")";
}
}
cout << number[i];
if (i == 4 || i == 6 || i == 8) {
cout << "-";
}
}
}
void operato() {
string num = type_number[2] + type_number[3] + type_number[4];
if ((num == "050") || (num == "099") || (num == "095") || (num == "066") || (num == "089")) {
cout << "MTS";
}
else
cout << "Ne mobilnuy nomer.";
}
};
int main() {
cout << "Enter Telephone number" << endl;
string some = " ";
getline(cin, some);
string some1 ;
Phone_number Phone1(some);
Phone_number Phone2(some1);
Phone1.Fun();
Phone1.operato();
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Компилятор встречает
type_number[2] + type_number[3] + type_number[4]
О! да это char, думает он. О! суммируем! Значит, надо просуммировать коды этих char'ов и получить какое-то число. Отлично, просуммировали.
Теперь что? Надо присвоить его строке? А как?
string num = 250;
Как это сделать? Нет ни одного преобразования int в string.
Значит, так и напишем пользователю, пусть разбирается...
Напишите
string num = ""s + type_number[2] + type_number[3] + type_number[4];
P.S. А что это у вас за чудо?
Phone_number(string type) {type_number=type; }
Phone_number(string numb) { number = numb; }
Два конструктора с одинаковой сигнатурой - и как компилятору выбрать подходящий...