Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

17.03.2012, 17:43. Просмотров 602. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2012, 17:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование классов. (C++):

Заменить наследование классов на наследование интерфейсов - C++
#include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование классов. Копирование производных классов - C++
Здравствуйте всем, у меня такой вопрос: написал код #include &quot;stdafx.h&quot; class A //Создаем класс А { int mA; ...

наследование классов - C++
Здарова, народ! :D Вот сижу и пытаюсь сделать задание из книги по которой &quot;учимся программировать в универе&quot;, а там такой поворот...

наследование классов - C++
Народ, всем приветик! Уже 3 день сижу над етой темой, не получается задание, вчера выбрасывал на форум исходник, но в конце концов сделал...

Наследование классов - C++
Доброго времени суток. Обращаюсь за помощью к Вам. Язык С++ стал изучать недавно и столкнулся вот с такой проблемой: Рассмотрим класс...

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

8
Kastaneda
Jesus loves me
Эксперт С++
4728 / 2932 / 242
Регистрация: 12.12.2009
Сообщений: 7,441
Записей в блоге: 2
Завершенные тесты: 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
1
Яна_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" запускается, работает, но вычисляет неверно.((
0
Kastaneda
Jesus loves me
Эксперт С++
4728 / 2932 / 242
Регистрация: 12.12.2009
Сообщений: 7,441
Записей в блоге: 2
Завершенные тесты: 1
17.03.2012, 18:35 #4
Цитата Сообщение от Яна_Max Посмотреть сообщение
Передать можно что угодно??? извините, любую "фигню" ?
Что значит "любую фигню"? Что передашь, то и посчитает. Хотя я в код не вникал.
0
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()
0
Яна_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();
0
Cool-T
20 / 13 / 1
Регистрация: 17.12.2010
Сообщений: 34
17.03.2012, 19:16 #7
C++
1
2
SweetBox:: getSalePrice();
        double salePrice;
Здесь вы вызвали getSalePrice из SweetBox, который ничего не сделал, а второй строчкой вы создали неинициализированную переменную. Которую в том же участке кода используете, что не есть хорошо.
1
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
17.03.2012, 19:28  [ТС] #8
Нужно как-то взять значение постоянной цены regularPrice, введенное пользователем в методе givelist() класса SweetBox,для расчета цены со скидкой в методе getSalePrice()....
0
Cool-T
20 / 13 / 1
Регистрация: 17.12.2010
Сообщений: 34
17.03.2012, 19:33 #9
Цитата Сообщение от Яна_Max Посмотреть сообщение
почему не есть хорошо?
Потому что значение неинициализированной переменной непредсказуемо.
0
17.03.2012, 19:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2012, 19:33
Привет! Вот еще темы с ответами:

наследование классов в C++ - C++
решил я с SDL поиграться.... ругается на 9 строчку компилятор, где ошибку допустил не подскажете?) main.cpp #include &lt;iostream&gt; ...

Наследование классов - C++
class A { public: * * A(int a){} }; class B : public A { public:

Наследование классов - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; class PARENT { public: void method1(){this-&gt;method2();}; void...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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