6 / 5 / 1
Регистрация: 30.11.2013
Сообщений: 104
1

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

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

Author24 — интернет-сервис помощи студентам
Подскажите, пожалуйста, когда нужно в ( ) что-то вставлять, а когда нет? Желательно, на примере.разжуйте, пожалуйста! Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2014, 10:50
Ответы с готовыми решениями:

Непонятны функции
Или ссылку на нее..

Непонятны логи
Всем привет! Есть удаленный сервер, на котором поднята БД, висит на порту 3306, разрешено...

Непонятны методы
class ChkNum { public bool IsPrime(int x) //задаём метод,параметром которого будет int x,а...

Непонятны алгоритмы программ
Объясните, не пойму логику как работают эти 3 программы, есть догадки, но все равно не пойму,кто...

Непонятны основы электротехники
Пытаюсь разобраться с потенциалами и токами. Нашел учебник по ТОЭ Бессонова. там имеется вот такая...

17
Модератор
Эксперт С++
13492 / 10748 / 6405
Регистрация: 18.12.2011
Сообщений: 28,681
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
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
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
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
25.01.2014, 11:10 4
Да тут уж очень много всего можно порасказывать.
В общих чертах скобки парсер воспринимает либо как отделение логических частей программы (части условия, например) и для передачи аргументов в функцию.
Советую также к прочтению operator()
0
Модератор
Эксперт С++
13492 / 10748 / 6405
Регистрация: 18.12.2011
Сообщений: 28,681
25.01.2014, 11:18 5
Цитата Сообщение от Tulosba Посмотреть сообщение
zss, а как Вам такое:
Мы все же в разделе С++,
а это 3 разные перегруженные функции.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
25.01.2014, 11:21 6
Tulosba, хех. а если
C
1
int f(void)
?)

Добавлено через 1 минуту
(причину то я знаю если что и в С++ такое не покатит)
0
6 / 5 / 1
Регистрация: 30.11.2013
Сообщений: 104
25.01.2014, 11:28  [ТС] 7
Ребят, приведите пример, когда нужно заполнить скобки
В смысле, не пример, а объяснение - когда их заполнять?
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
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
6 / 5 / 1
Регистрация: 30.11.2013
Сообщений: 104
25.01.2014, 11:50  [ТС] 9
Это я понимаю у меня проблемы с употреблением в ооп
0
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
25.01.2014, 12:08 10
Скобки и ООП не два взаимовязанных понятия, как бы) Т.е. скобки в ООП ничем от скобок не в ООП не отличаются (навскидку=))
0
6 / 5 / 1
Регистрация: 30.11.2013
Сообщений: 104
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
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
25.01.2014, 14:14 12
Цитата Сообщение от zss Посмотреть сообщение
Мы все же в разделе С++,
а это 3 разные перегруженные функции.
Может быть для Вас это будет новостью, но в Си нет механизма перегрузки функций.
1
Модератор
Эксперт С++
13492 / 10748 / 6405
Регистрация: 18.12.2011
Сообщений: 28,681
25.01.2014, 14:17 13
Цитата Сообщение от Suslo Посмотреть сообщение
Поясните, плиз, с.14 - 17,...
Этот метод записывает новое значение в защищенную переменную courseName.
Т.е. Вызов
C++
1
myGradeBook.setCourseName(nameOfCourse);
заменяет старое значение courseName на то, что содержится в nameOfCourse.

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

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

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

Не по теме:

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


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

Цитата Сообщение от Suslo Посмотреть сообщение
А зачем создается string name???
Если речь про 14 строку, то это параметр функции. Тип string, имя name.
2
6 / 5 / 1
Регистрация: 30.11.2013
Сообщений: 104
25.01.2014, 15:11  [ТС] 16
Так вот собственно и был вопрос-то такой: когда
C++
1
myGradeBook.setCourseName(nameOfCourse)
писать в скобках, а когда нет?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
25.01.2014, 15:17 17
Suslo, setCourseName - это функция, чтобы ее вызвать всегда нужно указывать скобки, в которых указать аргумент этой функции.
1
6 / 5 / 1
Регистрация: 30.11.2013
Сообщений: 104
25.01.2014, 15:18  [ТС] 18
Вооот, спасибо
0
25.01.2014, 15:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2014, 15:18
Помогаю со студенческими работами здесь

Регистрация. непонятны моменты
Вот нашел эту статью, вроде тут неплохо и понятно все написано. Но не понимаю я тут кое-что, если...

Непонятны некоторые операторы
Читал, читай книгу по C++. Что понял что нет. Пожалуйста помогите с такими вопросами: - Для чего...

Непонятны некоторые функции
Непонятны следующие функции, что они выполняют: (char)((int)('a')+j)) break; // что значит эта...

Непонятны спецификаторы в printf
Прошу объяснить подробно , что делает строка: #define TRACE(msg, val) printf(&quot;TRACE: %*c&quot; msg,...

Непонятны трафареты - новичек
Вот приступил к изучению OpenGL, т.к. всегда безумно хотел заниматься написание графики. Иду по...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru