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

Метод не возвращает значение - C++

Восстановить пароль Регистрация
 
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 402
23.08.2014, 13:18     Метод не возвращает значение #1
Здравствуйте. Создал простейший метод, для возвращения введённого значения. А возвращает то-адрес, то-ли что-то непонятно. Прошу объяснить в чём проблема

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
// ConsoleApplication18.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
 
class School
    {
        private:
 
        int year;
        
        public:
            int setyear(int year)
            {
                return year;
            };
      
            void getyear()
            {
                cout<<year;
            };
        
    };
    
int main(int argc, char* argv[])
{
    int ye=0;
    cin>>ye;
    School Main;
 
    Main.setyear(ye);
    Main.getyear();
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexandr_1982
Нарушитель
175 / 71 / 17
Регистрация: 04.11.2013
Сообщений: 383
Записей в блоге: 4
23.08.2014, 13:21     Метод не возвращает значение #2
Не инициализирована переменная year в классе. Функция setyear не устанавливает значение переменной year, как предполагается.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
23.08.2014, 13:22     Метод не возвращает значение #3
Метод setyear принимает на вход парметр и возвращает его же, не модицифируя поле класса - year. Соответственно, в нем мусор.
И старайтесь избегать дублирования имен.
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 402
23.08.2014, 13:27  [ТС]     Метод не возвращает значение #4
При попытке инициализации в классе ошибка:
2 IntelliSense: использование инициализатора элемента данных не допускается c:\Users\рр\Documents\Visual Studio 2012\Projects\ConsoleApplication18\ConsoleApplication18\ConsoleApplication18.cpp 14 14 ConsoleApplication18
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
23.08.2014, 13:35     Метод не возвращает значение #5
Цитата Сообщение от avatar1870 Посмотреть сообщение
2 IntelliSense: использование инициализатора элемента данных не допускается
Телепатов нет, показывайте код.
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 402
23.08.2014, 13:37  [ТС]     Метод не возвращает значение #6
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
// ConsoleApplication18.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
 
class School
    {
        private:
 
        int year=0;
        
        public:
            int setyear(int year)
            {
                return year;
            };
      
            void getyear()
            {
                cout<<year;
            };
        
    };
    
int main(int argc, char* argv[])
{
    int ye=0;
    cin>>ye;
    School Main;
 
    Main.setyear(ye);
    Main.getyear();
    system("pause");
    return 0;
}
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
23.08.2014, 13:56     Метод не возвращает значение #7
Такой синтаксис допустим в стандарте С++11. Если компилятор его не поддерживает, значит, нужно писать конструктор.

И да - проблему из первого поста это не решит. Почему - писали выше.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2014, 14:22     Метод не возвращает значение
Еще ссылки по теме:

C++ Функция не возвращает значение
Функция не возвращает значение C++
Функция не возвращает значение C++

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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.08.2014, 14:22     Метод не возвращает значение #8
Цитата Сообщение от avatar1870 Посмотреть сообщение
int setyear(int year) { return year; };
Не так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class School
    {
        private:
 
        int year=0;
        
        public:
            int setyear(int year)
            {
                this->year=year;
                return year;
            };
      
            void getyear()
            {
                cout<<year;
            };
        
    };
Yandex
Объявления
23.08.2014, 14:22     Метод не возвращает значение
Ответ Создать тему
Опции темы

Текущее время: 17:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru