Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.01.2010, 21:53   #11
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Код:
class A
{
      int eee()
{
    int z = 1+1;
    return z;
}
};

int main()
{
A a;
std::cout << a.eee();
return 0;
}
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума
Старый 13.01.2010, 21:53   #12
ddr9225
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 21
По умолчанию

Всем спасибо за советы.
Монах, а почему обязательно тип инт необходим? кстати в 5 строке у вас ошибка, там нужно на инт заменить.
А это что такое Рос?:

Код:
class A
{
      int eee()
{
    int z = 1+1;
    return z;
}
};
Это чтоб не писать вот так, что ли?
Код:
int A::eee()
А внутри фигурных скобок описывать функцию класса?
Если можно такое делать, то вот оппробовал так, не сработает.
Код:
#include <iostream>
using namespace std;

class A
{
      int eee()
{
    int z = 1+1;
    return z;
}
};


int main()
{
	A    B;
cout<<B.eee() << endl;
	system("pause");
	return 0;
}

Последний раз редактировалось ddr9225; 13.01.2010 в 21:59.
ddr9225 вне форума
Старый 13.01.2010, 21:59   #13
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Да, только следует учитывать специфику подобных объявлений... Впрочем Вам это пожалуй ещё рано, возьмите какую-нибудь книжку для начинающих и почитайте её ) Согласен с монахом, не заморачивайтесь с классами пока
netrino вне форума
Старый 13.01.2010, 22:05   #14
ddr9225
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 21
По умолчанию

Да нет, мне классы нужно сейчас прямо, дали лабы в учебном заведении, а там всё с классами. Так получается, что можно описывать функции класса, не через область видимости класса, а в фигурных скобках, если да, то почему вол это не срабатывает, и что странно там паблика нету - открытого раздела класса?
Код:
#include <iostream>
using namespace std;

class A
{
      int eee()
{
    int z = 1+1;
    return z;
}
};


int main()
{
	A    B;
cout<<B.eee() << endl;
	system("pause");
	return 0;
}
ddr9225 вне форума
Старый 13.01.2010, 22:20   #15
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Потому и не срабатывает, что ф-ция приватная
netrino вне форума
Старый 13.01.2010, 22:28   #16
ddr9225
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 21
По умолчанию

Рос, а зачем тогда ты мне привёл вот этот код, если он у менян е компилится, какую роль он играет?

Код:
class A
{
      int eee()
{
    int z = 1+1;
    return z;
}
};

int main()
{
A a;
std::cout << a.eee();
return 0;
}
ddr9225 вне форума
Старый 13.01.2010, 22:30   #17
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Цитата:
Сообщение от ddr9225 Посмотреть сообщение
Всем спасибо за советы.
Монах, а почему обязательно тип инт необходим? кстати в 5 строке у вас ошибка, там нужно на инт заменить.
А это что такое Рос?:

Код:
class A
{
      int eee()
{
    int z = 1+1;
    return z;
}
};
Это чтоб не писать вот так, что ли?
Код:
int A::eee()
А внутри фигурных скобок описывать функцию класса?
Если можно такое делать, то вот оппробовал так, не сработает.
Код:
#include <iostream>
using namespace std;

class A
{
      int eee()
{
    int z = 1+1;
    return z;
}
};


int main()
{
	A    B;
cout<<B.eee() << endl;
	system("pause");
	return 0;
}
Да, конечно тут ошибка, надо перед функцией public: поставить
вот так
class A
{
public:
int eee()
{
int z = 1+1;
return z;
}
};

ПРосто поздно уже и очень устал сегодня, во ти глупые ошибки...А вам советую, очень советую прочитать какую-нибудь книжку это гораздо ползенее, чем на форумах по чть чуть собирать информацию!
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума
Старый 13.01.2010, 22:34   #18
ddr9225
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 21
По умолчанию

Спасибо за ответы, с пабликом заработало.
А как грамотней или проффесиональней описывать, вашим путём Рос, или же через лбласть видимости, как там:
Код:
int A::eee()
Последний важный вопросик.
Скажите, а почему у меня вот так, тоже заработало, какэ то называется, почему этот
код, он выдал такой же результат, как прежний код:
Код:
#include <iostream>
using namespace std;

class A
{
public:   
int eee()
{
int z = 1+1;
return z;
}
};


int main()
{
cout<<A().eee()<<endl;
	system("pause");
	return 0;
}
Меня интересует вот эта строка:

Код:
cout<<A().eee()<<endl;
Здесь получается что не создаётся объект класса, как там?

Последний раз редактировалось ddr9225; 13.01.2010 в 22:48.
ddr9225 вне форума
Старый 13.01.2010, 23:00   #19
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Создаётся временный объект класса, потому и работает. Правильней описывать отдельно описание класса, отдельно реализацию методов, при чём в разных файлах(описание в .h, реализацию в .cpp). Следует учитывать, что функции, которые описываются в теле класса являются inline(подставляемыми)
netrino вне форума
Старый 14.01.2010, 10:39   #20
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Создаётся временный объект класса, потому и работает. Правильней описывать отдельно описание класса, отдельно реализацию методов, при чём в разных файлах(описание в .h, реализацию в .cpp). Следует учитывать, что функции, которые описываются в теле класса являются inline(подставляемыми)
Ну не скажи, что правильней, в зависимости от ситуации, а если у тебя класс - вложенный в другой, или тебе нужно, чтобы методы были встраиваемыми - Inline - тогда тебе надо или лучше описать методы внутри класса
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не правильно работает программа Virus_L Помощь студентам 0 28.12.2009 22:52
Программа компилируется, но не работает maziLa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 17.07.2009 11:24
Программа не работает ZYRGiX Помощь студентам 2 22.07.2008 21:44
Программа не работает Михаил Юрьевич Общие вопросы Delphi 2 19.04.2008 23:27