Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 28.06.2009, 16:40   #11
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Вы взяли пример из книги Стивена Прата. Вот там и почитайте, что это и для чего это.

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

не очень понятно там написано..(((

но все мои вопросы оказались закрытыми, спасибо

Последний раз редактировалось MaTBeu; 28.06.2009 в 17:02.
Dimarik вне форума Ответить с цитированием
Старый 28.06.2009, 17:35   #13
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

кто-нибудь сталкивался с таким глюком: после того, как я написал cpp-файл, билдер предложил создать проект. я отказался. обычно при каждом открытии cpp файла билдер предлагал создавать проект, но сейчас этого не происходит и я не могу сделать run.
и ещё вопрос по конструкторам. когда я создаю функцию с непустыми аргументами, то компилятор обращается к конструктору
Код:
Stock::Stock(const char* co, int n, double pr)
{
        strcpy(company, co);
        shares=n;
        share_val=pr;
        set_tot();
}
а когда я создаю функцию с пустыми аргументами, то компиллятор обращается к конструктору
Код:
{
        strcpy(company, "no name");
        shares=0;
        share_val=0.0;
        total_val=0.0;
}
Dimarik вне форума Ответить с цитированием
Старый 28.06.2009, 17:42   #14
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Цитата:
Сообщение от Dimarik Посмотреть сообщение
кто-нибудь сталкивался с таким глюком: после того, как я написал cpp-файл, билдер предложил создать проект. я отказался. обычно при каждом открытии cpp файла билдер предлагал создавать проект, но сейчас этого не происходит и я не могу сделать run.
Нужно создать консольное приложение File->New->Console Application (по моему)
Цитата:
Сообщение от Dimarik Посмотреть сообщение
и ещё вопрос по конструкторам. когда я создаю функцию с непустыми аргументами, то компилятор обращается к конструктору
Код:
Stock::Stock(const char* co, int n, double pr)
{
        strcpy(company, co);
        shares=n;
        share_val=pr;
        set_tot();
}
а когда я создаю функцию с пустыми аргументами, то компиллятор обращается к конструктору
Код:
{
        strcpy(company, "no name");
        shares=0;
        share_val=0.0;
        total_val=0.0;
}
Все правильно, это же перегрузка конструкторов. Выбирается тот конструктор, который подходит.

Stock obj("Company",1,1.0); - вызовется первый конструктор.
Stock obj; - вызовется второй конструктор (без параметров)

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

малость подредактировал , но возникла ошибка [C++ Error] stock2.cpp(58): E2293 ) expected
вот код
Код:
#include <iostream.h>
#include <cstring>
#include "stock2.h"
Stock::Stock()// коструктор по умолчанию
{
        strcpy(company, "no name");
        shares=0;
        share_val=0.0;
        total_val=0.0;
}
Stock::Stock(const char* co, int n, double pr)
{
        strcpy(company, co);
        shares=n;
        share_val=pr;
        set_tot();
}
void Stock::buy (int num, double price)
{
        if (num <0)
        {
                cout<<"Number of shared purchased can`t be negative."
                <<" Translation is aborted.\n";
        }
        else
        {
                shares+=num;
                share_val=price;
                set_tot();
        }
}
void Stock::sell (int num, double price)
{
        if (num> shares)
        {
                cout<<"you can`t sell more than you have!"
                <<"Translation is aborded.\n ";
        }
        else
        {
                shares-=num;
                share_val=price;
                set_tot();
        }
}
void Stock::update (double price)
{
        share_val=price;
        set_tot();
}
void Stock::show() const
{
        cout<<"Company: "<<company<<"shares: "
        <<shares<<endl
        <<"share Price: $"<<share_val
        <<"Total Worth: $"<<total_val<<endl;
}
const Stock & Stock::topval( const stock & s) const
{
        if (s total_val>total_val)
                retirn s;
        else
                return *this;
}
Dimarik вне форума Ответить с цитированием
Старый 28.06.2009, 21:17   #16
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
const Stock & Stock::topval( const stock & s) const   // регистр исправьте
{
        if (s total_val>total_val)  // точки нет
                retirn s;  // так и не исправили
        else
                return *this;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

у меня сейчас какая-то настройка в c++билдере 6 сбилась и теперь те файлы, которые имеют расширение cpp или h не запускаются. run неактивен
Dimarik вне форума Ответить с цитированием
Старый 28.06.2009, 22:37   #18
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

сам отвечу на свой вопрос. нету main`a - нечего запускать

есть одна ошибка: E2040 Declaration terminated incorrectly, но непонятно, что она означает
Код:
#include <iostream.h>
#include <cstring.h>
class BANK
{
private:
char name[25];
char num[25];
float saldo,x,y,z;
public:
   BANK::BANK()   //конструктор
   {
   strcpy(name,"SberBank");
   strcpy(num, "123");
   z=0;
   };
       void BANK::otobr()//отображение
        {cout<<BANK::name<<" - nazvanie banka;  "<<BANK::num<<" - nomer ckheta. "<<BANK::z<<
        "   ostatok"; }
        float BANK::vklad (float x)//ввод суммы
        {
        cout<<"Vvedite summu, kotoruu vi khotite polozhit na shet\n";
        cin>>x;
        z+=x;
        return z;}
        float BANK::sniat(float y)// снятие суммы
        {cout<<"vvedite summu, kotoruu vi khotite sniat:";
        cin>>y;
        z-=y;
        return z;}
void main()
{
BANK o1;
o1.vklad(x);
o1.otobr();
o1.sniat(y);
o1.otobr();
cin.get();}

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

Забыли еще одну фигурную скобку поставить. Видимо, где-нибудь здесь:
Код:
  z-=y;
        return z;}
};
void main()
{
После этого еще нужно объявить x и y, которые вы используете в main'е.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

как объявить?? они же у меня в классе объявлены до main`a=> это глобальные переменные. ну или , как минимум, они известны в пределах класса, это уж точно. а скобки везде правильно расставлены. специально ради этого отструктурировал программу
Код:
#include <iostream.h>
#include <cstring.h>
class BANK
{
private:
char name[25];
char num[25];
float saldo,x,y,z;
public:
   BANK::BANK()   //êîíñòðóêòîð
   {
   strcpy(name,"SberBank");
   strcpy(num, "123");
   z=0;
   };
       void BANK::otobr()//îòîáðàæåíèå
        {
        cout<<BANK::name<<" - nazvanie banka;  "<<BANK::num<<" - nomer ckheta. "<<BANK::z<<
        "   ostatok";
        }
                float BANK::vklad (float x)//ââîä ñóììû
                 {
                 cout<<"Vvedite summu, kotoruu vi khotite polozhit na shet\n";
                 cin>>x;
                 z+=x;
                 return z;
                 }
         float BANK::sniat(float y)// ñíÿòèå ñóììû
        {
        cout<<"vvedite summu, kotoruu vi khotite sniat:";
        cin>>y;
        z-=y;
        return z;
        }
void main()
{
BANK o1;
o1.vklad(x);
o1.otobr();
o1.sniat(y);
o1.otobr();
cin.get();
}
Dimarik вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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