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

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

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

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

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

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

Цитата:
они же у меня в классе объявлены до main`a=> это глобальные переменные. ну или , как минимум, они известны в пределах класса, это уж точно
Вот именно, что они известны классу.
Где в этих строчках:
Код:
BANK o1;
o1.vklad(x);
o1.otobr();
o1.sniat(y);
вы обращаетесь к переменным x и y класса BANK? Нигде.

Нужно либо объявить их в классе в public и вызывать так:
Код:
o1.vklad(o1.x);
либо вообще ничего не посылать в функции (вообще не понимаю, зачем вы это делаете, если значения вводите все равно внутри функции).

Цитата:
а скобки везде правильно расставлены. специально ради этого отструктурировал программу
Тогда просто посчитайте количество открывающих и закрывающих скобок. И увидите, что открывающих больше.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 29.06.2009 в 00:35.
Sazary вне форума Ответить с цитированием
Старый 29.06.2009, 20:14   #22
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

ещё один вопросик.... в книге был пример с массивоб объектов, который задан на основе этого класса, создаётся такой массив:
Код:
Stock stocks[4]=
{ 
Stock("NanoSmart", 12, 20.0),
Stock ("Boffo", 200, 2.0),
Stock ("Moon", 130, 3.25,
Stock ("Fleep, 60, 6.5)
}
в чём же собственно заключается мой вопрос. в определении классы были даны массив символов, переменная int и 2 переменный типа double. Всего 4 поля для записи данных, но, как видим, запись происходит только в 3 поля. Каким образом осуществляется запись и какие поля остаются пустыми?

Последний раз редактировалось MaTBeu; 30.06.2009 в 14:53.
Dimarik вне форума Ответить с цитированием
Старый 29.06.2009, 20:17   #23
assasin
Форумчанин
 
Регистрация: 27.04.2009
Сообщений: 123
По умолчанию

Цитата:
Сообщение от Dimarik Посмотреть сообщение
ещё один вопросик.... в книге был пример с массивоб объектов, который задан на основе этого класса, создаётся такой массив:
Stock stocks[4]=
{
Stock("NanoSmart", 12, 20.0),
Stock ("Boffo", 200, 2.0),
Stock ("Moon", 130, 3.25,
Stock ("Fleep, 60, 6.5)
}
в чём же собственно заключается мой вопрос. в определении классы были даны массив символов, переменная int и 2 переменный типа double. Всего 4 поля для записи данных, но, как видим, запись происходит только в 3 поля. Каким образом осуществляется запись и какие поля остаются пустыми?
В теле вызываемого в данном случае конструктора должно быть четко прописано, какой переменной присваивается аргумент функции... Возможно четвертому элементу присваивается значение по умолчанию.
<= P.S. если я тебе помог нажми весы слева <=
assasin вне форума Ответить с цитированием
Старый 29.06.2009, 21:11   #24
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Dimarik, просто последнее четвертое значение подсчитывается с помощью функции void set_tot(){total_val=shares*share_va l} (страница 464), она умножает первое на второе значение, я так понял цену одного батончика (или чего там) на их количество.
profi вне форума Ответить с цитированием
Старый 29.06.2009, 21:55   #25
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

profi , ты тоже сейчас юзаешь Прату?? О_о
Dimarik вне форума Ответить с цитированием
Старый 29.06.2009, 22:02   #26
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

уже давно проюзал
profi вне форума Ответить с цитированием
Старый 29.06.2009, 22:52   #27
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

в Стивене на стр 486 была написана программа. я написал аналог этой программы, только более упрощённый и компиллятор выдал мне ошибки.. кто может, подскажите, где косяк
Код:
#include <iostream.h>
class shet
{
private: int dol, euro;
public:
        shet::shet()
        {
        int dol=0, euro=0; //задаю по умолчанию значения
        };

        shet shet::sum(const shet &t)
        {
        shet m;
        m.dol=dol+t.dol;
        m.euro=euro+t.euro;
        return m;
        };
        otobr()
        {
        cout<<shet::dol<<"   dollarov   "<<shet::euro<<"   euro"<<endl;
        }
};
main()
{
shet A(5,6), B(10,11), C;    //придаём А и B значения A.dol=5, A.euro=6 для B аналогично
C=B.sum(A);
C.otobr();
}
Dimarik вне форума Ответить с цитированием
Старый 29.06.2009, 23:08   #28
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

сам отвечу на свой вопрос:
Код:
#include <iostream.h>
class shet
{
private: int dol, euro;
public:
        shet::shet( int dol,int euro)
        {
          dol=0, euro=0; //задаю по умолчанию значения
        };
        shet::shet( )
        {
          dol=0, euro=0; //задаю по умолчанию значения
        };
        shet shet::sum(const shet &t)
        {
        shet m;
        m.dol=dol+t.dol;
        m.euro=euro+t.euro;
        return m;
        };
        otobr()
        {
        cout<<shet::dol<<"   dollarov   "<<shet::euro<<"   euro"<<endl;
        }
};
main()
{
shet A(5,6), B(10,11), C;    //придаём А и B значения A.dol=5, A.euro=6 для B аналогично
C=B.sum(A);
C.otobr();
}
вот только результат выполнения программы неадекватный получается

так кто-нибудь знает, почему получается такой неадекватный результат?

скорее всего где-то ошибка в функции, где я применял ссылки, для того, чтобы увеличить быстродействие программы

Последний раз редактировалось MaTBeu; 30.06.2009 в 14:54.
Dimarik вне форума Ответить с цитированием
Старый 30.06.2009, 11:34   #29
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
#include <iostream.h>
class shet
{
private: int dol, euro;
public:
        shet( int dol,int euro)
        {
          this->dol=dol; this->euro=euro; //задаю по умолчанию значения
        }
        shet( )
        {
          dol=0; euro=0; //задаю по умолчанию значения
        }
shet sum(const shet &t);        
void otobr();
};
        void shet::otobr()
        {
        cout<< dol<<"   dollarov   "<<euro<<"   euro"<<endl;
        }

shet shet::sum(const shet &t)
        {
        shet m;
        m.dol=dol+t.dol;
        m.euro=euro+t.euro;
        return m;
        }

int main()
{
shet A(5,6), B(10,11), C;    //придаём А и B значения A.dol=5, A.euro=6 для B аналогично
C=B.sum(A);
C.otobr();
return 0;
}

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

profi, можешь объяснить, почему int dol, euroнельзя написать в public и зачем надо this использовать и как он работает и почему у меня неправильно работало, где у меня ошибка... очень надо понять
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