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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2009, 23:43   #51
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
а как же проверить, правильно ли я составил их??? как синтаксис проверить?
Подключите его к любой программе )) К самой простой
Код:
#include "file.cpp"
int main()
{
return 0;
}
А вообще, в Dev-Cpp, например, можно и так проверить ) Просто выдаст ошибку, что нет точки входа.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

вот я подключил написанный файл к программе.
Код:
#include <iostream.h>
#include "Complex1.cpp"
main()
{
int x,y,c,v;
Complex A(x,y);
Complex B(c,v);
Complex C;
C=A+B;
cout<<C;
cin.get();
cin.get();
}
в этом месте
int x,y,c,v;
Complex A(a,b);
пришлось вводить слишком много переменных. можно как-нибудь без этого обойтись?
я хотел просто написать Complex A(x,y), но у меня этого не получилось, только я не знаю, почему
Dimarik вне форума Ответить с цитированием
Старый 30.06.2009, 23:56   #53
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Dimarik
пришлось вводить слишком много переменных. можно как-нибудь без этого обойтись?
Почему же много? Ну, можно, например, для B тоже использовать x и y.
Цитата:
Сообщение от =Dimarik
я хотел просто написать Complex A(x,y), но у меня этого не получилось, только я не знаю, почему
Не понял, как вы пытались сделать.

Вот еще замечание:
у вас конструктор с параметрами:
Код:
Complex::Complex(int a, int b)
{cout<<"Vvedite deistvitelnuu chast i mnimuu chast";
cin>>this->a>>this->b;};
теперь вопрос: зачем вы принимаете две переменных, если никак их не используете? Вы вводите значения в самом конструкторе.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

не понял, как я их не использую. я создаю объект с действительной и мнимой частью. я складываю и перемножаю объекты и вычитаю их.
а вот как я пытался сделать:
Код:
#include <iostream.h>
#include "Complex1.cpp"
main()
{
Complex A(a,b);
Complex B(a,b);
Complex C;
C=A+B;
cout<<C;
cin.get();
cin.get();
}
Sazary, а как можно сделать проще, чтоб меньше ресурсов кушало?=)

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

Еще раз внимательно посмотрите на конструктор:

Код:
Complex::Complex(int a, int b)
{cout<<"Vvedite deistvitelnuu chast i mnimuu chast";
cin>>this->a>>this->b;};
и вот вы его вызываете:
Код:
Complex A(x,y);
конструктору передаются два параметра - x и y.
Но внутри конструктора вы их не используете!
Переменным a и b экземпляра класса вы присваиваете значения, которые вводите в конструкторе, а не те, которые передаете в параметрах.

Нужно как-то вот так:
Код:
Complex::Complex(int x, int y)
{a = x;
b = y;};
И вообще не советую использовать одинаковые имена для полей класса и для параметров - легко можете запутаться.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 01.07.2009, 00:33   #56
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Посмотрел Ваши наработки на предыдущей странице. Мне кажется, что вы рано замахнулись на перегрузку операторов

Код:
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;
};
Для начала советую почитать про виртуальные функции, абстрактные классы и т.д. Одним словом все темы, которые предшествуют перегрузке операторов в книге.
profi вне форума Ответить с цитированием
Старый 01.07.2009, 00:38   #57
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

хорошо. переделал. вот код.
Код:
#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 x, int y)
{cout<<"Vvedite deistvitelnuu chast i mnimuu chast";
cin>>x>>y;
a=x;b=y;};
Complex::Complex()
{a=0;b=0;};
Complex operator+(Complex &n, Complex &m)// сумма 2ух комплексных чисел
{
Complex p;
p.a=n.a+m.a;
p.b=n.b+m.b;
return p;
};
Complex operator-(Complex &n, Complex &m)// произведение 2ух комплексных чисел
{
Complex p;
p.a=n.a-m.a;
p.b=n.b-m.b;
return p;
};
Complex operator*(Complex &n, Complex &m)// произведение 2ух комплексных чисел
{
Complex p;
p.a=n.a*m.a-n.b*m.b;
p.b=n.a*m.b+n.b*m.a;
return p;
};
ostream & operator<<(ostream & s, Complex &n)
{s<<n.a<<" + "<<n.b<<"i"<<endl;
return s;}
#endif
это был заголовочный файл. теперь сама программа:
Код:
#include <iostream.h>
#include "Complex1.cpp"
main()
{
Complex A(x,y);//что-то компилятору не нравится
Complex B(x,y);
Complex C;
C=A+B;
cout<<C;
cin.get();
cin.get();
}
и я вообще не понял, какие переменyые будут определены a и b или x и y
Dimarik вне форума Ответить с цитированием
Старый 01.07.2009, 00:42   #58
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Цитата:
Сообщение от Dimarik Посмотреть сообщение
Код:
Complex A(x,y);//что-то компилятору не нравится
Complex B(x,y);
Complex C;
C=A+B;
cout<<C;
cin.get();
cin.get();
}
и я вообще не понял, какие переменyые будут определены a и b или x и y
Будут определены переменные a,b объявите в main переменные x,y так int x,y; Они не объявлены.

Последний раз редактировалось profi; 01.07.2009 в 00:55.
profi вне форума Ответить с цитированием
Старый 01.07.2009, 00:43   #59
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

profi, я всё подряд читаю. единственное я пропустил стр 473-477, и о классе Vector на стр 505-521 я не читал, бегло функции преобрахования, прочитал, функции преобразования и дружественные конструкции. а так всё подробно изучаю, по крайней мере стараюсь
Dimarik вне форума Ответить с цитированием
Старый 01.07.2009, 00:45   #60
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

и вот я сделал что ты сказал, тем не менее ошибка: параметры используются только в теле функции
#include <iostream.h>
#include "Complex1.cpp"
main()
{
Complex A(a,b);
Complex B(a,b);
Complex C;
C=A+B;
cout<<C;
cin.get();
cin.get();
}
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