вернуть значение в структуре из метода класса

0
#include <iostream>
using namespace std;

struct AccountInfo
{
    int Acnumber;
    char ID;
};

class Account
{
    public:
        AccountInfo Operation(void)
        {
            AccountInfo s;
            s.ID = 'M';
            return s;

        }
};

int main()
{
    Account a;
    AccountInfo s = a.Operation();
    cout << s.ID << endl;

    return 0;
}     

Я пытаюсь вернуть значения, данные структуре внутри метода класса. Код компилируется с ошибками. Я пытался использовать объект, он компилируется успешно, но ничего не выводит.

В чем проблема с моим кодом?

  • 0
    Что вы имеете в виду, что вы «пытались использовать объект»?
  • 0
    вместо struct я определил класс и создал объект этого класса внутри класса Account.
Показать ещё 6 комментариев
Теги:
struct
methods

2 ответа

3
Лучший ответ
struct Operation(void)

Какой тип возвращает эта функция? Он не может быть struct потому что это не тип, это ключевое слово, обозначающее определение структуры. Судя по возвращаемому значению и тому, как вы его используете, я предполагаю, что вы пытаетесь вернуть объект AccountInfo:

AccountInfo Operation()
{
    AccountInfo s;
    s.ID = 'M';
    return s;
}

void также не нужна для пустых параметров. Кроме того, вам нужно сделать тип s в main() AccountInfo:

int main()
{
    Account a;
    AccountInfo s = a.Operation();
}
  • 0
    Извините, это верно. Это опечатка. Я должен заменить AccountInfo вместо структуры. Я просто хотел получить М в моем выводе. Это возможно?
  • 0
    @Pgram Конечно, это возможно. Если вы полностью реализуете предложения, которые я вам дал, вы получите правильный результат. Вот рабочий пример.
Показать ещё 8 комментариев
1

Измените struct на AccountInfo везде, кроме первоначальной декларации.

  • 0
    Спасибо, я забыл!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню