Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
#1

Наследование классов. - C++

17.03.2012, 17:43. Просмотров 584. Ответов 8
Метки нет (Все метки)

Добрый день! Помогите, пожалуйста, разобраться с наследованием классов. И, вероятно, неправильно использую функцию(ругается, что функция не принимает 0 аргументов-"s1.getSalePrice();")

P.S. классы и методы такие по заданию.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// 10.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "fstream"
#include "string"
using namespace std;
class SweetBox
{private:
  int quantity;//количество конфет в упаковке
  string name;//название упаковки конфет
 public: 
  double regularPrice;//постоянная цена
  double getSalePrice(){};
 
void givelist()
{
    cout<<"\n vvedite name: ";
    cin>>name;
    cout<<"\n vvedite quantity: ";
    cin>>quantity;
    cout<<"\n vvedite regularPrice: ";
    cin>>regularPrice;
 
}
 
void getlist()
{
    cout<<"\n name="<<name;
    cout<<"\n quantity="<<quantity;
    cout<<"\n regularPrice="<<regularPrice;
}
};
 
class Present: public  SweetBox
{public: 
   int weight;//вес упаковки
   double salePrice;//цена со скидкой
double getSalePrice(double regularPrice)
{ 
    SweetBox:: getSalePrice();
    double salePrice;
    if (weight>1000)
        salePrice=regularPrice*0,8;//если вес больше 1000, предоставляется скидка 20%
    return salePrice;
}
 
void givelist()
{  
    SweetBox::givelist();
    cout<<"\n vvedite weight:";
        cin>>weight;
}
 
void getlist()
{
    SweetBox::getlist();
    cout<<"\n weight="<<weight;
    cout<<"\n salePrice="<<salePrice;
}
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    Present s1;//объект s1 класса Present
    s1.givelist();
    s1.getSalePrice();
    s1.getlist();
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2012, 17:43     Наследование классов.
Посмотрите здесь:

Наследование классов - C++
Очень нужна помощь, организую открытое наследование, но постоянно выходят ошибки, не могу понять от чего TForm1 *Form1; class ABK{ ...

Наследование классов - C++
Здравствуйте, извините за глупый вопрос, но у меня проблема в следующем: Имеется базовый класс class TestFirst{ public: int...

Наследование классов - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; const int LEN=80; class kraina { private: ...

наследование классов - C++
нужно создать программу состоящую из классов по принципу наследования то есть отец-сын-внук заранее спасибо!!

Наследование классов - C++
Помогите пожалуйста написать программу Создайте базу данных деканата. В ней фиксируются данные о 2 категории студентах: студенты...

Наследование классов - C++
Здравствуйте, начал изучать наследование классов и не могу понять как ведут себя конструкторы с параметром. Вот код, но он печатает на...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
17.03.2012, 17:49     Наследование классов. #2
C++
1
s1.getSalePrice();
функция должна получать аргумент, передай ей что-нибудь.
C++
1
s1.getSalePrice(12345); // например так
еще
C++
1
salePrice=regularPrice*0,8;//если вес больше 1000, предоставляется скидка 20%
вместо запятой поставь точку в числе 0.8
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
17.03.2012, 18:09  [ТС]     Наследование классов. #3
Цитата Сообщение от Kastaneda Посмотреть сообщение
C++
1
s1.getSalePrice();
функция должна получать аргумент, передай ей что-нибудь.
C++
1
s1.getSalePrice(12345); // например так
Передать можно что угодно??? извините, любую "фигню" ?

Добавлено через 12 минут
Спасибо. Да, с "12345" запускается, работает, но вычисляет неверно.((
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
17.03.2012, 18:35     Наследование классов. #4
Цитата Сообщение от Яна_Max Посмотреть сообщение
Передать можно что угодно??? извините, любую "фигню" ?
Что значит "любую фигню"? Что передашь, то и посчитает. Хотя я в код не вникал.
Cool-T
20 / 13 / 1
Регистрация: 17.12.2010
Сообщений: 34
17.03.2012, 18:55     Наследование классов. #5
У Вас функция getSalePrice принимает 1 аргумент (double regularPrice) (41 строка). Скорей всего это опечатка, так как regularPrice у вас непосредственно в классе есть, так что данной функции ничего принимать не надо.

Добавлено через 15 минут
также в
C++
1
2
SweetBox:: getSalePrice();
        double salePrice;
Непонятно что делает. Возможно имелось ввиду
C++
1
salePrice = SweetBox::getSalePrice()
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
17.03.2012, 19:10  [ТС]     Наследование классов. #6
Просто метод getSalePrice есть в базовом классе SweetBox, а реализацию надо написать в классе Present.
C++
1
2
SweetBox:: getSalePrice();
        double salePrice;
этим я решила "унаследовать" метод, так же как и
C++
1
2
void getlist()
        SweetBox::getlist();
Cool-T
20 / 13 / 1
Регистрация: 17.12.2010
Сообщений: 34
17.03.2012, 19:16     Наследование классов. #7
C++
1
2
SweetBox:: getSalePrice();
        double salePrice;
Здесь вы вызвали getSalePrice из SweetBox, который ничего не сделал, а второй строчкой вы создали неинициализированную переменную. Которую в том же участке кода используете, что не есть хорошо.
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
17.03.2012, 19:28  [ТС]     Наследование классов. #8
Нужно как-то взять значение постоянной цены regularPrice, введенное пользователем в методе givelist() класса SweetBox,для расчета цены со скидкой в методе getSalePrice()....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2012, 19:33     Наследование классов.
Еще ссылки по теме:

наследование классов - C++
Работаю в с++ билдер.. программа вылетает при запуске.. после того, как сделал наследование.. В чем проблема? Как решить? Вот код: ...

Наследование классов - C++
к примеру , запись наследования класса class tria : public shape имеем доступ к public и protected базового класс. а как работают...

Наследование классов - C++
Всем привет! У меня проблема. Вот задание: 1. Разработать следующие классы: • базовый класс «студент» с полями: Имя, Группа ...

Наследование классов - C++
Пусть автомобиль характеризуется установленным двигателем, трансмиссией и количеством мест для пассажиров. Двигатель определяется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Cool-T
20 / 13 / 1
Регистрация: 17.12.2010
Сообщений: 34
17.03.2012, 19:33     Наследование классов. #9
Цитата Сообщение от Яна_Max Посмотреть сообщение
почему не есть хорошо?
Потому что значение неинициализированной переменной непредсказуемо.
Yandex
Объявления
17.03.2012, 19:33     Наследование классов.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru