Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Y4enik
2 / 2 / 0
Регистрация: 22.03.2015
Сообщений: 32
#1

Исправить ошибку "выражение должно быть допустимым для изменения левосторонним значением" - C++

20.07.2016, 16:57. Просмотров 291. Ответов 7
Метки нет (Все метки)

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
const int N = 10;
 
 class mc {
 public:
     char s1[N], s2[N];
     void input(); //ввод
     void output(); //вывод
     void operator + (char *s);
 };
 
 void mc::input() {
     char *s;
     s = s1;
     s = "Hello";
     s = s2;
     s = " world";
 }
 
 void main()
 {
     mc object;
     object.input();
     std::cout << object.s1 << std::endl;
 }
Подскажите , пожалуйста. Почему выводит в данном случае белеберду и почему функцию input() нельзя реализовать
C++ (Qt)
1
2
3
4
 void mc::input() {
     s1 = "Hello";
     s2 = " world";
 }
Выдает ошибку "выражение должно быть допустимым для изменения левосторонним значением"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2016, 16:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исправить ошибку "выражение должно быть допустимым для изменения левосторонним значением" (C++):

Исправить ошибку "выражение должно быть допустимым для изменения левосторонним значением" - C++
проблема когда задаю функцию, пишет &quot; +6 перегрузок выражение должно быть допустимым для изменения левосторонним значением&quot; помогите...

Исправить ошибку в условии if "выражение должно быть допустимым для изменения левосторонним значением" - C++
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Russian&quot;); cout &lt;&lt; &quot;Введите количество посетителей&quot; &lt;&lt;...

"Выражение должно быть допустимым для изменения левосторонним значением" - C++
#include &lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include&lt;fstream&gt; using namespace std; struct knigi { char name; ...

Ошибка: "Выражение должно быть допустимым для изменения левосторонним значением" - C++
struct statistica{ char name; double number1; // Номер счета double number2; // Приход double number3; // Расход char...

Ошибка "выражение должно быть допустимым для изменения левосторонним значением" - C++
В файле, путь к которому вводится с экрана, находится массив. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; ...

Выдает ошибки : "выражение должно быть допустимым для изменения левосторонним значением" - C++
В строке 75: fam3.surname_people= fam2.surname_people; выдает ошибки : &quot;выражение должно быть допустимым для изменения левосторонним...

7
shilko2013
244 / 221 / 118
Регистрация: 02.04.2016
Сообщений: 849
Завершенные тесты: 1
20.07.2016, 17:05 #2
Зачем вам input.. Сделайте конструктор!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const int N = 10;
 
 class mc {
 public:
     string s1, s2;
     mc(string & as1, string &as2) {
     s1=as1;
     s2 = as2;
}
     void output(); {cout << s1 << " " << s2};
     mc operator+ (mc & a) {
          //здесь перегрузка с this
     }
 };
 
 
int main()
 {
     mc object("fdgf","fgdfg");
     object.output();
return 0;
 }
0
Y4enik
2 / 2 / 0
Регистрация: 22.03.2015
Сообщений: 32
20.07.2016, 17:08  [ТС] #3
у меня не подключен заголовок для string. char s[N] с этим не получится? Подскажите, пожалуйста, в чем у меня ошибка
0
Antony Coder
3 / 2 / 2
Регистрация: 17.07.2016
Сообщений: 16
20.07.2016, 17:13 #4
попробуй так
C++
1
2
3
4
if (s == s1)
     s = "Hello";
     if  (s == s2)
     s = " world";
0
shilko2013
244 / 221 / 118
Регистрация: 02.04.2016
Сообщений: 849
Завершенные тесты: 1
20.07.2016, 17:20 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class mc {
public:
    char *s1, *s2;
    mc(char *a, char *b) {
        s1 = a;
        s2 = b;
    }
    void output() { std::cout << s1 << " " << s2; }
    mc operator+ (mc & a) {
        //здесь перегрузка с this
    }
};
int main() {
char * a = "dgfdgdfg";
char * b = "sfgsfgfdgd;";
mc object(a, b);
object.output();
return 0;
}
Добавлено через 19 секунд
Деструктор еще нужен
1
Y4enik
2 / 2 / 0
Регистрация: 22.03.2015
Сообщений: 32
20.07.2016, 17:25  [ТС] #6
С массивами в чем тогда проблема?
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
20.07.2016, 17:28 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Y4enik Посмотреть сообщение
с этим не получится
Ага. Или строки подключите или присваивайте в цикле посимвольно. Операторы сложения и присваивания для массивов отсутствуют. И еще куча классных вещей. Тоже отсутствует. Но при остром желании - посимвольно. Только сделайте проверку на длину. Или си-шные библиотеки для строк юзайте. strcat и пр. (тогда хоть и string.h, а всё равно придётся подключить).
А лучше и подключить и использовать string
1
zss
Модератор
Эксперт С++
6478 / 6041 / 1982
Регистрация: 18.12.2011
Сообщений: 15,651
Завершенные тесты: 1
20.07.2016, 17:31 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Y4enik Посмотреть сообщение
С массивами в чем тогда проблема?
C++
1
2
3
4
5
void mc::input() 
 {
    strcpy(s1,"Hello");
    strcpy(s2," world");
 }
1
20.07.2016, 17:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2016, 17:31
Привет! Вот еще темы с ответами:

Выдает ошибку "Выражение должно быть допустимым для изменения левосторонним значениям " - C++
List&lt;Animals&gt; List&lt;Animals&gt;::operator+(Animals object) { List&lt;Animals&gt; *Add = new List&lt;Animals&gt;; List&lt;Animals&gt; *last = Get_last(); ...

Выдает ошибку "выражение должно быть допустимым левосторонним значением" - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { int f; int x; int b,a,c; cout &lt;&lt; &quot;Введите...

Выражение должно быть допустимым для изменения левосторонним значением - C++
Вот код: a ^ 2 = a*a; a ^ 4 = a^2 * a^2; a ^ 8 = a^4 * a^4; a ^ 16 = a^8 * a^8; Ошибки находятся тут: a ^ 4 и т.д. Не знаю что...

Выражение должно быть допустимым для изменения левосторонним значением - C++
//Структура пользователя программой struct User { char Login; char Password; }; User Array; //Функция входа в программу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru