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

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

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

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

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

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

как я понял, если ht=true, то Hastable==true. но что-то я этого не увидел в коде программы
Dimarik вне форума Ответить с цитированием
Старый 02.07.2009, 00:21   #72
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

народ, смотрите, вопросик есть, ответьте плиз.
{ int a. работаю с этой переменной.
переменная а принимает какое-то значение, например a=5
{int a; значение у неё сохраняется?
затем делаю ++а}
и в результате получается 6, так?
Dimarik вне форума Ответить с цитированием
Старый 02.07.2009, 00:32   #73
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();
}
затем я заголовочый файл малость изменил, сделав только наследование классов
Код:
#include <iostream.h>
#ifndef Complex1_
#define Complex1_
class Complex
{       private: int a,b;
        public:
        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;} ;
//наследование классов
class Chislo: public Complex //наследование класса//должен определить, комплексное это число или действительное (b=0||b!=0)
{
        public:  bool p;
        Chislo(int x, int y, bool q);
        Chislo(bool q);
        friend ostream &  operator<<(ostream & rr, Chislo & t);
};
//функции-элементы
Chislo::Chislo(int x, int y, bool q):Complex(x,y)
{
        if(y=0) q=true;
        else
        q=false;
        p=q;
}
Chislo::Chislo(bool q):Complex()
{
        q=true; p=q;
}
ostream & operator<<(ostream & rr, Chislo & t)
{
        if(t.p=true) rr<<" deistvitelnoe ";
        else{rr<<" Complexnoe ";};
}
#endif
В итоге программа перестала работать, хотя в её коде я не трогал ничего. только трогал заголовочный файл (сзодал производный класс).
почему? что такое?
Dimarik вне форума Ответить с цитированием
Старый 02.07.2009, 13:38   #74
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

в mаin`e только что определил Int x,y.
после этого программа заработала. непонятно, почему до того , как я сделал наследование классов без определения x и y программа работала и после введения наследования классов в заголовочный файл она перестала работать.
кто-нибудь знает????)
Dimarik вне форума Ответить с цитированием
Старый 02.07.2009, 14:10   #75
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