ООП в С++

программирование C++ ООП

Вот код материт на конструктор:
class Enter_Music
{
public:
int N;
int S1[1000];
int S2[1000];
int Len;
int i;
Enter_Music(int n,int s1,int s2)
{
this->N=n;
this->S1=s1;
this->S2=s2;
}
void EM()
{
for (i=0;i<N;i++)
{
cout <<"‚ўҐ¤ЁвҐ зЁбв®вг §ўгЄ "<<i+1<<"(Ќ ЇаЁ¬Ґа, 1 1): ";
cin >>S1[i],S2[i];
cout <<"‚ўҐ¤ЁвҐ ¤«Ё­г §ўгЄ "<<i+1<<"ў ¬Ё««ЁбҐЄг­¤ е: ";
cin >>Len;
}
}
};


Вот что пишет компилятор:
In constructor 'Enter_Music::Enter_Music(int, int, int)':|
17|error: incompatible types in assignment of 'int' to 'int [1000]'|
18|error: incompatible types in assignment of 'int' to 'int [1000]'|
In function 'int main()':|
57|error: invalid conversion from 'int*' to 'int' [-fpermissive]|
14|error: initializing argument 2 of 'Enter_Music::Enter_Music(int, int, int)' [-fpermissive]|
57|error: invalid conversion from 'int*' to 'int' [-fpermissive]|
14|error: initializing argument 3 of 'Enter_Music::Enter_Music(int, int, int)' [-fpermissive]|
||=== Build failed: 6 error(s), 0 warning(s) (0 minute(s), 4 second(s)) ===|



Как компилятору сообщить что это массив?

Примечание:
Enter_Music(int n,int s1[1000],int s2[1000])
{
this->N=n;
this->S1=s1;
this->S2=s2;
}




Исправил тоже самое....

Примечание:
"возможно там должно быть что-то вроде

this->S1[n] = s1; ?
"
Спасибо! Но я не пойму почему так???
Ответы:
возможно там должно быть что-то вроде
Всё как раз наоброт: компилятор пытается тебе сообщить, что ты хочешь за вместо целого массива впихнуть единичный объект, а это это ошибка (несоответствие типов) . :)
Потому что S1 - это массив чисел, а s1 - это одно число. Чтобы записать число в массив, нужно указать в квадратных скобках - в какой элемент массива это число нужно поместить.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.