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

Error C2106: '=' : left operand must be l-value - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
phpBB Нужно решение нескольких задач:) http://www.cyberforum.ru/cpp-beginners/thread1718163.html
1)Для записи слайдов использован компакт-диск объемом 630 Мбайт. Он полностью использован для слайдов по 800х600 пискселей каждый при 24 битах для цвета. Сколько слайдов на диске? 2)Если человек говорит в день 8 часов без перерыва, то за 70 лет он наговорит около 10 гбайт информации. Сколько букв произнесет человек за год? 3) Работник решил в обеденный перерыв подключить свой портативный ПК к...
phpBB Сформировать новый массив Дан целочисленный массива x_1,x_2, ..., x_n. Сформировать новый массив, в котором сначала расположены нечетные элементы, а затем их порядковые номера. http://www.cyberforum.ru/cpp-beginners/thread1714706.html
phpBB Паскаль
Вхідними даними для програми є: назва держави, чисельність населення, кількість людей, що мають середню та вищу освіту. Вивести назву держави з найбільшим відсотком освічених громадян. помогите кто то с программой в паскале.
phpBB Хотел обновить звуковой драйвер не получилось
Что делать ?
phpBB Видеопроект http://www.cyberforum.ru/cpp-beginners/thread1697303.html
Кто может скинуть готовый видео проект,на любую тему.
phpBB Открываются рекламные окна в стиме, нужна помош ь пожалуйста Не могу пофиксить появление рекламных окон в стиме, нужна помош ь! подробнее

Показать сообщение отдельно
Alonka
0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 17
25.04.2016, 16:39  [ТС]     Error C2106: '=' : left operand must be l-value
+= friend потому что я использую его в другом классе. В классе College.
И в классе College есть массив указателей Department**. И мне нужно перегрузить += чтобы так добавлять Course в Department.

Добавлено через 8 минут
И компилятор ругается из-за оператора:

Error C2803 'operator +=' must have at least one formal parameter of class type

Добавлено через 2 минуты
Спасибо большое!Исправила:

C++
1
2
Course** arr=p_department->get_p_course();
arr = new Course*[count_course + 1];
Добавлено через 14 минут
Попробовала сделать так:
C++
1
2
3
4
5
6
void operator += (Department& p_department, const Course& c)
{
//...
    Course** arr=p_department.get_p_course();
    arr = new Course*[count_course + 1];
}
И тогда в классе College чтоб записать Course в Department нужно так?????
C++
1
*p_department[i] += temp;
Добавлено через 49 минут
И вот почему то в файле Department.h вылазит полно синтаксических ошибок:

C++
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#define _CRT_SECURE_NO_WARNINGS
#ifndef DEPARTMENT_H
#define DEPARTMENT_H
#include "Course.h"
#include <iostream>
#include <string>
using namespace std;
 
class Department
{
    static Department* p_department;    
private:
    string name_department;
    long id_department; 
    Course** p_course; //Error C2143 syntax error: missing ';' before '*'
                                      //Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int
                                      //Error C2238 unexpected token(s) preceding ';'   
    int count_course;
    Department(const Department& d);
    void operator = (const Department& d);
public: 
    Department();
    static Department* instance();
    ~Department();  
    void set(string name_department, long id_department);
    string get_name() const { return name_department; } 
    long get_id_department() const { return id_department; }
    int get_count_course() const { return count_course; }
    Course** get_p_course() { return p_course; } //Error C2143 syntax error: missing ';' before '*'
                                                                             //Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int
                                                                             //Error    C2238 unexpected token(s) preceding ';'
    void set_count_course(int count_course) { this->count_course = count_course; }  
    friend ostream& operator << (ostream &os, const Department* p_department);
    friend istream& operator >> (istream &is, Department* p_department);
    friend void operator += (Department& p_department,const Course& c); //Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int
                                                                                                                   //Error  C2143 syntax error: missing ',' before '&'
 
};
 
#endif
 
Текущее время: 20:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru