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

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

Восстановить пароль Регистрация
 
Suslo
2 / 2 / 0
Регистрация: 30.11.2013
Сообщений: 80
Завершенные тесты: 1
25.01.2014, 10:50     Непонятны "()" в ооп #1
Подскажите, пожалуйста, когда нужно в ( ) что-то вставлять, а когда нет? Желательно, на примере.разжуйте, пожалуйста! Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 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 без параметров. 
}
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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, не С++.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
25.01.2014, 11:10     Непонятны "()" в ооп #4
Да тут уж очень много всего можно порасказывать.
В общих чертах скобки парсер воспринимает либо как отделение логических частей программы (части условия, например) и для передачи аргументов в функцию.
Советую также к прочтению operator()
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
25.01.2014, 11:18     Непонятны "()" в ооп #5
Цитата Сообщение от Tulosba Посмотреть сообщение
zss, а как Вам такое:
Мы все же в разделе С++,
а это 3 разные перегруженные функции.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
25.01.2014, 11:21     Непонятны "()" в ооп #6
Tulosba, хех. а если
C
1
int f(void)
?)

Добавлено через 1 минуту
(причину то я знаю если что и в С++ такое не покатит)
Suslo
2 / 2 / 0
Регистрация: 30.11.2013
Сообщений: 80
Завершенные тесты: 1
25.01.2014, 11:28  [ТС]     Непонятны "()" в ооп #7
Ребят, приведите пример, когда нужно заполнить скобки
В смысле, не пример, а объяснение - когда их заполнять?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
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 секунд
Но пока вы не возьмете книжку и не прочитаете хоть базовые понятия, мы будем разговаривать с вами на разных языках.
Suslo
2 / 2 / 0
Регистрация: 30.11.2013
Сообщений: 80
Завершенные тесты: 1
25.01.2014, 11:50  [ТС]     Непонятны "()" в ооп #9
Это я понимаю у меня проблемы с употреблением в ооп
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
25.01.2014, 12:08     Непонятны "()" в ооп #10
Скобки и ООП не два взаимовязанных понятия, как бы) Т.е. скобки в ООП ничем от скобок не в ООП не отличаются (навскидку=))
Suslo
2 / 2 / 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 секунд
Простите за несвязанный текст: спешу
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
25.01.2014, 14:14     Непонятны "()" в ооп #12
Цитата Сообщение от zss Посмотреть сообщение
Мы все же в разделе С++,
а это 3 разные перегруженные функции.
Может быть для Вас это будет новостью, но в Си нет механизма перегрузки функций.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
25.01.2014, 14:17     Непонятны "()" в ооп #13
Цитата Сообщение от Suslo Посмотреть сообщение
Поясните, плиз, с.14 - 17,...
Этот метод записывает новое значение в защищенную переменную courseName.
Т.е. Вызов
C++
1
myGradeBook.setCourseName(nameOfCourse);
заменяет старое значение courseName на то, что содержится в nameOfCourse.

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

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

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

Не по теме:

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


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

Цитата Сообщение от Suslo Посмотреть сообщение
А зачем создается string name???
Если речь про 14 строку, то это параметр функции. Тип string, имя name.
Suslo
2 / 2 / 0
Регистрация: 30.11.2013
Сообщений: 80
Завершенные тесты: 1
25.01.2014, 15:11  [ТС]     Непонятны "()" в ооп #16
Так вот собственно и был вопрос-то такой: когда
C++
1
myGradeBook.setCourseName(nameOfCourse)
писать в скобках, а когда нет?
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
25.01.2014, 15:17     Непонятны "()" в ооп #17
Suslo, setCourseName - это функция, чтобы ее вызвать всегда нужно указывать скобки, в которых указать аргумент этой функции.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2014, 15:18     Непонятны "()" в ооп
Еще ссылки по теме:

C++ Р. Лафоре "ООП в C++". Не компилируется пример с консольной графикой
Код из "Р.Лафоре. ООП в С++" C++
Программа по ООП. Класс "Журнал оценок" C++

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

Или воспользуйтесь поиском по форуму:
Suslo
2 / 2 / 0
Регистрация: 30.11.2013
Сообщений: 80
Завершенные тесты: 1
25.01.2014, 15:18  [ТС]     Непонятны "()" в ооп #18
Вооот, спасибо
Yandex
Объявления
25.01.2014, 15:18     Непонятны "()" в ооп
Ответ Создать тему
Опции темы

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