Мне не удается напечатать из-за экрана array string

#include <iostream>
#include <string>

using namespace std;
const int NUM = 3;

void hola(string &mana[])
{

    mana[0] = "Hola soy sergio";
    mana[1] = "Mamam me quierre";
    mana[2] = "Hola como estas";
}


int main()
{

    string mana[NUM];

    hola(mana);
    string *p = mana;


    for (int i = 0; i < NUM; i++)
    {
        cout << *p++ << endl; 
    }

    return 0;
}

В этом коде я хочу напечатать с указателем 3 молитвы из-за экрана, но по какому-то разуму у меня выходит ошибка, где он говорит, что я не определил мой array внутри функции, но я это посылаю как параметр ссылки и все же он не принимает мой array.

Каков мой problem в этом коде. Большое спасибо из-за Вашей помощи.?

4
задан 09.03.2017, 02:23
2 ответа

Я это посылаю как параметр ссылки и все же он не принимает мой array.

ты не преуспел с синтаксисом ссылки на договоренность (array), твой c¦digo:

string &mana[]

Значит" Я упорядочиваю от ссылок на объекты string", cuÃ: l он не будет составлять, потому что C ++ он не позволяет договоренности ссылок. Если, что quer¦-эксперт был ссылкой на договоренность объектов string, правильный синтаксис:

string (&mana)[]

Но это также estÃ: позволенный в C ++. Обязательно показывать tamaño договоренности в ссылках на договоренности объектов, asà - что правильный синтаксис ser¦ - в:

string (&mana)[NUM]

Это funcionarÃ: всякий раз когда NUM был исчислимой стоимостью во времени ejecuci¦n. С подходящими изменениями, твой c¦digo составляет без ошибок и работает без неудач, ты это можешь видеть aquà - :

using namespace std;
const int NUM = 3;

void hola(string (&mana)[NUM])
{
    mana[0] = "Hola soy sergio";
    mana[1] = "Mamam me quierre";
    mana[2] = "Hola como estas";
}
4
ответ дан 24.11.2019, 10:42

Проблема estÃ: в:

void hola(string &mana[])

Благодаря тому, что estÃ: перемещая указатель hola(mana);, нужно признавать parÃ: метр в funci¦n меткого типа в string:

void hola(string mana[])

, Что состоит в том, чтобы использовать notaci¦n договоренностей, и что эквивалентный в:

void hola(string *mana)

В notaci¦n указателей.


Adicionalmente, también возможно определять funci¦n с notaci¦n указателей и не договоренностей:

void hola(string *mana)
{
    *(mana+0) = "Hola soy sergio";
    *(mana+1) = "Mamam me quierre";
    *(mana+2) = "Hola como estas";
}

И вывод продолжает быть:

Привет я sergio
Мамам я quierre
Привет как дела

2
ответ дан 24.11.2019, 10:42

Теги

Похожие вопросы