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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2009, 20:27   #41
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

кто может подсказать, что означает enum {lj=14}
как я понял, это что-то типа константы для классов, но почему тогда мы не пишем const lj=14

Последний раз редактировалось Dimarik; 30.06.2009 в 20:29.
Dimarik вне форума Ответить с цитированием
Старый 30.06.2009, 20:44   #42
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

enum - оператор перечисления. В вашем примере, где существует только одно значение, смысла использования не вижу. Можно и const lj=14 написать.
А вот если значений несколько, то можно использовать, фактически, как тип:
Код:
enum example
{
 a = 1,
 b = 2,
 c = 3,
 d = 4
};
//..................
example P = b;
или так:
Код:
enum
{
 a = 1,
 b = 2,
 c = 3,
 d = 4
};
//..............
int P = b;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.06.2009, 21:38   #43
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

скажите, если я в main`e напишу
Complex A(a,b), B(a,b), у меня конструктор сработает 2 раза (для каждого числа)???
Dimarik вне форума Ответить с цитированием
Старый 30.06.2009, 21:42   #44
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

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

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.06.2009, 21:43   #45
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

как думаете, можно ли в заголовочном файле помимо прототипов функций класса ещё и их определения записать?
Dimarik вне форума Ответить с цитированием
Старый 30.06.2009, 22:41   #46
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

Код:
#include <iostream.h>
#ifndef Complex1
#define Complex1
class Complex
{
public:        
 int a,b;
friend Complex operator+(Complex &n, Complex &m);
friend Complex operator-(Complex &n, Complex &m);
friend Complex operator*(Complex &n, Complex &m);
friend ostream & operator<<(ostream & s, Complex &n);
};
//далее определяем функции
Complex::Complex(int a, int b)
{cout<<"Vvedite deistvitelnuu chast i mnimuu chast";
cin>>this->a>>this->b;};
Complex::Complex()
{a=0;b=0;};
Complex operator+(Complex &n, Complex &m)// сумма 2ух 

комплексных чисел
{
Complex p;
a.p=a.n+a.m;
b.p=b.n+b.m;
return p;
};
Complex operator-(Complex &n, Complex &m)// произведение 

2ух комплексных чисел
{
Complex p;
a.p=a,n-a.m;
b.p=b.n-b.m;
return p;
};
Complex operator*(Complex &n, Complex &m)// произведение 

2ух комплексных чисел
{
Complex p;
a.p=a.n*a.m-b.n*b.m;
b.p=a.n*b.m+b.n*a.m
return p;
};
ostream & operator<<(ostream & s, Complex &n)
{s<<a.n<<" + "<<b.n<<"i"<<endl;
return s;}
#endif
в конструкторе возникает ошибка. Пишет, что эта функция не принадлежит классу. и ещё пишет, что неизвестны a и b. Почему???
и как наиболее грамотно исправить эту проблему?
P.S. желательно пользоваться дружественными функциями
Dimarik вне форума Ответить с цитированием
Старый 30.06.2009, 23:04   #47
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

блин. я забыл прототипы конструкторов записать
Dimarik вне форума Ответить с цитированием
Старый 30.06.2009, 23:10   #48
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

остался один единственный косяк. не знает a и b, которые были определены в классе. в дружественных функциях не знает
Код:
#include <iostream.h>
#ifndef Complex1
#define Complex1
class Complex
{
public:
int a,b;
Complex (int a, int b);
Complex ();
friend Complex operator+(Complex &n, Complex &m);
friend Complex operator-(Complex &n, Complex &m);
friend Complex operator*(Complex &n, Complex &m);
friend ostream & operator<<(ostream & s, Complex &n);
};
//далее определяем функции
Complex::Complex(int a, int b)
{cout<<"Vvedite deistvitelnuu chast i mnimuu chast";
cin>>this->a>>this->b;};
Complex::Complex()
{a=0;b=0;};
Complex operator+(Complex &n, Complex &m)// сумма 2ух комплексных чисел
{
Complex p;
a.p=a.n+a.m;
b.p=b.n+b.m;
return p;
};
Complex operator-(Complex &n, Complex &m)// произведение 2ух комплексных чисел
{
Complex p;
a.p=a.n-a.m;
b.p=b.n-b.m;
return p;
};
Complex operator*(Complex &n, Complex &m)// произведение 2ух комплексных чисел
{
Complex p;
a.p=a.n*a.m-b.n*b.m;
b.p=a.n*b.m+b.n*a.m
return p;
};
ostream & operator<<(ostream & s, Complex &n)
{s<<a.n<<" + "<<b.n<<"i"<<endl;
return s;}
#endif
и ещё вопрос:как прокомпиллировать заголовочный файл? если нет main`a и run не активен и alt+f9 не работает???
Dimarik вне форума Ответить с цитированием
Старый 30.06.2009, 23:19   #49
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
остался один единственный косяк. не знает a и b, которые были определены в классе. в дружественных функциях не знает
Естественно! Например, тут:
Код:
Complex p;
a.p=a.n+a.m;
У вас p - экземпляр класса, а a - его поле. Соответственно и писать нужно
Код:
p.a
а не наоборот

Цитата:
и ещё вопрос:как прокомпиллировать заголовочный файл? если нет main`a и run не активен и alt+f9 не работает???
Никак. Заголовочные файлы не нужно компилить. Они для того, чтобы их подключали.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.06.2009, 23:32   #50
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

как не нужно?? а как же проверить, правильно ли я составил их??? как синтаксис проверить?
Dimarik вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На счёт окошек Акашаев Нурлан Общие вопросы Delphi 2 26.06.2008 09:52
Как на счёт создания игрового 2D или 3D движка на C++? SalasAndriy Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 23.12.2007 23:05
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28
Помогите мне пожалуйста!На счёт книг! SADAM Свободное общение 1 08.06.2007 14:26