Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > помогите с объектами


Автор: Ander 17.11.2003, 23:49
Господа программеры, помогите заставить эту штуку работать. Пример взят из книги Стивена Прата: "С++ Лекции и Упражнения", в несколько укороченном виде. Пробовал в MS Visual C++ 6.0 и Dev-Cpp. В первом - unexpected end of file, во втором - parse error at end of input. Чего здесь неправильно?

// stock.h
#ifndef _STOCK_H_
#define _STOCK_H_
class Stock
{
private:
char company[30];
int shares;
double share_val;
double total_val;
void set_tot()
{ total_val = shares * share_val;)
public:
Stock();
Stock(const char *co, int n, double pr);
~Stock() {}
void show() const;
const Stock & topval(const Stock & s) const;
};
#endif


// secondary.cpp
#include <iostream>
#include <cstring>
using namespace std;
#include "stock.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::show() const
{
cout << "Company: " << company
<< "Shares: " << shares << '\n'
<< "Share Price: $" << share_val
<< "Total Worth: $" << total_val << '\n';
}
const Stock & Stock::topval(const Stock & s) const
{
if (s.total_val > total_val)
return s;
else
return *this;
}


// main.cpp
#include <iostream>
using namespace std;
#include "stock.h"

int main()
{
Stock stock1=Stock("NanoSmart", 12, 20.0);
stock1.show();
Stock stock2=Stock("NiftyFoods",2,2.0);
stock2.show;
}

Автор: Dov 18.11.2003, 00:51

  • 1 { total_val = shares * share_val;)->}
  • 2 int main()->void main()
  • 3 stock2.show->stock2.show()


Автор: Ander 18.11.2003, 01:05
Dov, спасибо, только на void компилятор пишет "must return int". Но главное, что работает! Я только не понимаю, почему компилятор не указал на фигурную скобку и их отсутствие при вызове метода . Это ведь ошибка синтаксиса? Как тогда их отслеживать?

Автор: RAN 18.11.2003, 06:37
Цитата
Я только не понимаю, почему компилятор не указал на фигурную скобку и их отсутствие при вызове метода . Это ведь ошибка синтаксиса? Как тогда их отслеживать?

Если взялся работать на C, то надо быть внимательней. Это обратная сторона медали гибкости, предоставляемой языком. Первое время таких ошибок не избежать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)