Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
avatar1870
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
#1

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

23.08.2014, 13:18. Просмотров 616. Ответов 7
Метки нет (Все метки)

Здравствуйте. Создал простейший метод, для возвращения введённого значения. А возвращает то-адрес, то-ли что-то непонятно. Прошу объяснить в чём проблема

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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2014, 13:18
Ответы с готовыми решениями:

Как получить значение из метода класса, если метод возвращает указатель?
Всем привет. Как получить значение из метода класса, если метод возвращает...

Метод OpenService не возвращает handle
var serviceHandle = OpenService( scManagerHandle, svc.ServiceName,...

Метод класса возвращает template type
надо создать метод который возвращает значение privat переменных разных типов....

Абстрактный класс. Виртуальный метод, который возвращает T- тип
Привет! Допустим, есть абстрактный класс, и метод, который возвращает T-тип....

Не возвращает значение
Здравствуйте! Помогите люди добрые?) Вообщем, нужно написать на Visual C++...

7
Alexandr_1982
179 / 80 / 30
Регистрация: 04.11.2013
Сообщений: 413
Записей в блоге: 4
23.08.2014, 13:21 #2
Не инициализирована переменная year в классе. Функция setyear не устанавливает значение переменной year, как предполагается.
0
0x10
2571 / 1751 / 288
Регистрация: 24.11.2012
Сообщений: 4,377
23.08.2014, 13:22 #3
Метод setyear принимает на вход парметр и возвращает его же, не модицифируя поле класса - year. Соответственно, в нем мусор.
И старайтесь избегать дублирования имен.
0
avatar1870
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
23.08.2014, 13:27  [ТС] #4
При попытке инициализации в классе ошибка:
2 IntelliSense: использование инициализатора элемента данных не допускается c:\Users\рр\Documents\Visual Studio 2012\Projects\ConsoleApplication18\ConsoleApplication18\ConsoleApplication18.cpp 14 14 ConsoleApplication18
0
0x10
2571 / 1751 / 288
Регистрация: 24.11.2012
Сообщений: 4,377
23.08.2014, 13:35 #5
Цитата Сообщение от avatar1870 Посмотреть сообщение
2 IntelliSense: использование инициализатора элемента данных не допускается
Телепатов нет, показывайте код.
0
avatar1870
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
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;
}
0
0x10
2571 / 1751 / 288
Регистрация: 24.11.2012
Сообщений: 4,377
23.08.2014, 13:56 #7
Такой синтаксис допустим в стандарте С++11. Если компилятор его не поддерживает, значит, нужно писать конструктор.

И да - проблему из первого поста это не решит. Почему - писали выше.
0
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
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;
            };
        
    };
0
23.08.2014, 14:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2014, 14:22

Функция не возвращает значение
Функция ничего не возвращает: int Return(int s) { return s; } Передаю...

Подпрограмма не возвращает значение
Отрывок программы. Не возвращает значение pr (в подролграмме считает по-новому...

Функция не возвращает значение
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru