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

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

23.08.2014, 13:18. Просмотров 777. Ответов 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
QA
Эксперт
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-тип. class A {...

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

7
Alexandr_1982
183 / 84 / 31
Регистрация: 04.11.2013
Сообщений: 420
Записей в блоге: 4
23.08.2014, 13:21 2
Не инициализирована переменная year в классе. Функция setyear не устанавливает значение переменной year, как предполагается.
0
0x10
2690 / 1839 / 311
Регистрация: 24.11.2012
Сообщений: 4,546
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
23.08.2014, 13:27
0x10
2690 / 1839 / 311
Регистрация: 24.11.2012
Сообщений: 4,546
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
2690 / 1839 / 311
Регистрация: 24.11.2012
Сообщений: 4,546
23.08.2014, 13:56 7
Такой синтаксис допустим в стандарте С++11. Если компилятор его не поддерживает, значит, нужно писать конструктор.

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

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

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

noexcept возвращает значение?
Прототип std::swap выглядит так: template &lt;class T, size_t N&gt; void swap(T (&amp;a), T (&amp;b)) noexcept...


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

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

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