С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Suslo
3 / 3 / 0
Регистрация: 30.11.2013
Сообщений: 80
Завершенные тесты: 1
#1

Непонятны "()" в ооп - C++

25.01.2014, 10:50. Просмотров 462. Ответов 17
Метки нет (Все метки)

Подскажите, пожалуйста, когда нужно в ( ) что-то вставлять, а когда нет? Желательно, на примере.разжуйте, пожалуйста! Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2014, 10:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непонятны "()" в ооп (C++):

Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей"; - C++
Помогите пожалуйста с задачей. Могу сделать ее просто, но надо через ООП и у меня не получается. Дано натуральное число N (N<20),...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс "вентилятор" содержащий в себе классы:...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

17
zss
Модератор
Эксперт С++
6580 / 6142 / 2024
Регистрация: 18.12.2011
Сообщений: 16,009
Завершенные тесты: 1
25.01.2014, 10:56 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class A
{
public:
  int f()  // метод без параметров, поэтому в скобках ничего нет
  {
        return 2*2;
  }
};
int main() // точка входа тоже функция без параметров
{
   A a;
   int k=a.f(); //Вызов метода класса A без параметров. 
}
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
25.01.2014, 11:06 #3
zss, а как Вам такое:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
int f()
{
   printf( "f()\n" );
}
 
int main(void)
{
   f(); // ok
   f(42); // ok
   f( 1, "text" ); // ok
   return 0;
}
http://ideone.com/NZrD1F

P.S. код C, не С++.
1
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,633
25.01.2014, 11:10 #4
Да тут уж очень много всего можно порасказывать.
В общих чертах скобки парсер воспринимает либо как отделение логических частей программы (части условия, например) и для передачи аргументов в функцию.
Советую также к прочтению operator()
0
zss
Модератор
Эксперт С++
6580 / 6142 / 2024
Регистрация: 18.12.2011
Сообщений: 16,009
Завершенные тесты: 1
25.01.2014, 11:18 #5
Цитата Сообщение от Tulosba Посмотреть сообщение
zss, а как Вам такое:
Мы все же в разделе С++,
а это 3 разные перегруженные функции.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,633
25.01.2014, 11:21 #6
Tulosba, хех. а если
C
1
int f(void)
?)

Добавлено через 1 минуту
(причину то я знаю если что и в С++ такое не покатит)
0
Suslo
3 / 3 / 0
Регистрация: 30.11.2013
Сообщений: 80
Завершенные тесты: 1
25.01.2014, 11:28  [ТС] #7
Ребят, приведите пример, когда нужно заполнить скобки
В смысле, не пример, а объяснение - когда их заполнять?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,633
25.01.2014, 11:33 #8
это очень обобщенное понятие.
Например вот что возможно вы хотите увидеть:
когда мы объявляем любой конструктор явно, то компилятор больше не генерирует никаких конструкторов, даже того, которые по-умолчанию.
Если мы явно указали конструктор, который обязывает явно указать элемент, то чтобы создать объект мы просто вынуждены что-то передать ему для инициализации.
А теперь код:
C++
1
2
3
4
5
6
7
8
9
10
struct A
{
    A(int) {}
};
 
int main()
{
    A a; // не пройдет
    A a2(1); // пройдет
}
Добавлено через 36 секунд
Но пока вы не возьмете книжку и не прочитаете хоть базовые понятия, мы будем разговаривать с вами на разных языках.
1
Suslo
3 / 3 / 0
Регистрация: 30.11.2013
Сообщений: 80
Завершенные тесты: 1
25.01.2014, 11:50  [ТС] #9
Это я понимаю у меня проблемы с употреблением в ооп
0
monolit
186 / 185 / 22
Регистрация: 24.03.2011
Сообщений: 669
Завершенные тесты: 1
25.01.2014, 12:08 #10
Скобки и ООП не два взаимовязанных понятия, как бы) Т.е. скобки в ООП ничем от скобок не в ООП не отличаются (навскидку=))
0
Suslo
3 / 3 / 0
Регистрация: 30.11.2013
Сообщений: 80
Завершенные тесты: 1
25.01.2014, 13:31  [ТС] #11
Приду к компьютеру - скину задачу(решение), продемонстрирую, что мне именно непонятно
По дейтейлу занимаюсь, на 3-ей главе. Мне непонятно, как он возвращает значение: в общем, позже

Добавлено через 1 час 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
40
41
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <string>
using std::string;
using std::getline;
#include <conio.h>
using namespace std;
 
class GradeBook
{
public:
    void setCourseName (string name)
    {
        courseName=name; //Сохранить имя курса в объекте
    }
    string getCourseName ()//Аккесор
    {
        return courseName;//Вернуть имя курса
    }
    void displayMessage()
    {
        cout<<"Welcome to the GradeBook for "<< getCourseName()<<"!"<<endl;//Поприветствовать!
    }
private:
    string courseName;// О_о Почему приват???
};
int main()
{
    string nameOfCourse;//Создает переменную типа string для хранения имени курса
    GradeBook myGradeBook;//Создает объкт класса GradeBook с именем myGradeBook
    cout<<"Initial corse name"<< myGradeBook.getCourseName()<<endl;//Возвращает, выводя на экран значение courseName;
    cout<<"Enter, please, name of course"<<endl;
    getline (cin, nameOfCourse);
    myGradeBook.setCourseName(nameOfCourse);//Сохраняет имя в объекте, используя переменную NameOfCourse
    cout<<endl;
    myGradeBook.displayMessage();
    _getch();
    return 0;
}
Добавлено через 3 минуты
Непонятна функция (set... ) 14 строка. И не понимаю, зачем нужны скобки и что вообще делает программа на 36 строке? Поясните, плиз, с.14 - 17, строка 36. Спасибо. Кстати, суть программы - ввести название курса точнее изменить его. Зачем нужна string name (14?).Объясните детально работу программы

Добавлено через 25 секунд
Простите за несвязанный текст: спешу
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
25.01.2014, 14:14 #12
Цитата Сообщение от zss Посмотреть сообщение
Мы все же в разделе С++,
а это 3 разные перегруженные функции.
Может быть для Вас это будет новостью, но в Си нет механизма перегрузки функций.
1
zss
Модератор
Эксперт С++
6580 / 6142 / 2024
Регистрация: 18.12.2011
Сообщений: 16,009
Завершенные тесты: 1
25.01.2014, 14:17 #13
Цитата Сообщение от Suslo Посмотреть сообщение
Поясните, плиз, с.14 - 17,...
Этот метод записывает новое значение в защищенную переменную courseName.
Т.е. Вызов
C++
1
myGradeBook.setCourseName(nameOfCourse);
заменяет старое значение courseName на то, что содержится в nameOfCourse.

Добавлено через 1 минуту
Цитата Сообщение от Tulosba Посмотреть сообщение
но в Си нет механизма перегрузки функций.
Еще раз обращаю внимание, что мы находимся в разделе С++.
1
Suslo
3 / 3 / 0
Регистрация: 30.11.2013
Сообщений: 80
Завершенные тесты: 1
25.01.2014, 14:41  [ТС] #14
Цитата Сообщение от zss Посмотреть сообщение
Этот метод записывает новое значение в защищенную переменную courseName.
Т.е. Вызов
C++
1
myGradeBook.setCourseName(nameOfCourse);
заменяет старое значение courseName на то, что содержится в nameOfCourse.

Добавлено через 1 минуту

Еще раз обращаю внимание, что мы находимся в разделе С++.
А зачем создается string name???
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
25.01.2014, 14:47 #15

Не по теме:

Цитата Сообщение от zss Посмотреть сообщение
Еще раз обращаю внимание, что мы находимся в разделе С++.
Это не повод говорить глупости.


Suslo, в некоторых языках есть понятие свойств (property) класса, в C++ такого нет. Поэтому когда требуется организовать чтение/запись приватных данных извне реализуют пару функции: геттер/сеттер. Другие названия - аксессор/мутатор. Геттер при этом должен быть объявлен как const, т.к. в нормальном случае не должен изменять состояние объекта.

Цитата Сообщение от Suslo Посмотреть сообщение
А зачем создается string name???
Если речь про 14 строку, то это параметр функции. Тип string, имя name.
2
25.01.2014, 14:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2014, 14:47
Привет! Вот еще темы с ответами:

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Реализовать структуру "Анкета" с полями "Фамилия", "Пол" и "Адрес" - C++
Здравствуйте. Проходим тему Структуры, не могу понять, как определить количество, само задание: #include &lt;iostream&gt; #include...

Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" - C++
Функция - расчёт зарплаты по нагрузке и оплате часа для определенной категории. Категория Оплата часа Вторая 150 Первая 200 ...

по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно - C++
замените в слове сочетание &quot;му&quot; на &quot;а&quot; , а букву &quot;ы&quot; на &quot;ца&quot;. очень нужно Добавлено через 21 час 4 минуты неужели никто не знает...


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

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

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