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

Функция внутри класса - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Bllaaa
11 / 11 / 1
Регистрация: 08.12.2011
Сообщений: 148
01.04.2012, 19:52     Функция внутри класса #1
Здраствуйте. Очень прошу знающих людей помочь мне. Покажите простой пример - Класс, внутри этого класса функция, которая вычисляет квадрат числа (которое должен ввести сам пользователь), а затем собственно выводиться и сам результат.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
01.04.2012, 20:00     Функция внутри класса #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
class Sqr
{
public:
    int getSqr(int number)
    {
        return number * number;
    }
};
 
int main()
{
    int number;
    std::cout << "Number: ", std::cin >> number;
    std::cout << "Square: " << (new Sqr())->getSqr(number);
    return 0;
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.04.2012, 20:05     Функция внутри класса #3
Цитата Сообщение от Bllaaa Посмотреть сообщение
Здраствуйте. Очень прошу знающих людей помочь мне. Покажите простой пример - Класс, внутри этого класса функция, которая вычисляет квадрат числа (которое должен ввести сам пользователь), а затем собственно выводиться и сам результат.
Зачем для этой задачи вообще класс использовать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class numsqr{
  int data;
  int square;
 public:
  numsqr(int param=0): data(param){
                  square=param*param;
            }
  const int getdata(){
                  return data;
            }
  const int getsquare(){
                  return square;
            }
  void set(int param=0){
                  data=param;
                  square=param*param;
            }
};
Вообще задание выглядит как проблема на пустом месте. Вот зачем на практике может понадобиться такой класс? Знаю, задание не для практики, а для учёбы. Тогда чему он научить может??
А вот это
C++
1
2
3
4
5
6
7
8
class Sqr
{
public:
    int getSqr(int number)
    {
        return number * number;
    }
};
вот это вообще непонятно зачем. Зачем класс с одним единственным методом создавать? Не легче ли просто функцию написать?
Konstantin_D
 Аватар для Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
01.04.2012, 20:13     Функция внутри класса #4
Прикольно получилось
C++
1
(new Sqr())->getSqr(number)
А почему в данном варианте не работает так:
C++
1
Sqr::getSqr(number)
И почему не сделать функцию статической?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
01.04.2012, 20:24     Функция внутри класса #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
вот это вообще непонятно зачем
это для того, чтобы выполнить условие задания
Цитата Сообщение от Konstantin_D Посмотреть сообщение
И почему не сделать функцию статической?
Можно и статической, но у ТС возник бы вопрос, что такое static, а у вас - почему я сделал статиком, а не создал объект
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.04.2012, 20:24     Функция внутри класса #6
Цитата Сообщение от Konstantin_D Посмотреть сообщение
Прикольно получилось
C++
1
(new Sqr())->getSqr(number)
А почему в данном варианте не работает так:
C++
1
Sqr::getSqr(number)
И почему не сделать функцию статической?
Вот и я спрашиваю, зачем такое задание вообще нужно? Где здесь острая необходимость вообще в классе.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2012, 20:38     Функция внутри класса
Еще ссылки по теме:

BST дерево. Инициализация класса внутри класса C++
C++ Методы класса внутри определения класса
C++ Видимость экземпляра класса внутри класса

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

Или воспользуйтесь поиском по форуму:
Konstantin_D
 Аватар для Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
01.04.2012, 20:38     Функция внутри класса #7
Зачем для этой задачи вообще класс использовать?
А это чтобы делать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Sqr
{
    int x;
public:
    explicit Sqr(int n): x(n) {}
    void operator()(int& num) { num *= x; }
};
 
int main()
{
    vector<int> v;
    for (int i = 0; i<5; ++i)
        v.push_back(i);
    for_each(v.begin(), v.end(), Sqr(2));
    for_each(v.begin(), v.end(), Sqr(3));
}
Только не бейте
Yandex
Объявления
01.04.2012, 20:38     Функция внутри класса
Ответ Создать тему
Опции темы

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