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

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

Войти
Регистрация
Восстановить пароль
 
girlwithoutname
1 / 1 / 0
Регистрация: 19.12.2010
Сообщений: 37
#1

Ввод данных в функции конструктора и использование их в перегруженной функции - C++

07.06.2011, 21:46. Просмотров 1066. Ответов 6
Метки нет (Все метки)

Вот собственно код, как его исправить, что бы не было ошибки. Пишет что переменные не объявлены.
Это вполне естественно. Но как сделать так, что бы он брал эти переменные в функции конструктора???

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
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
public:
    int a,b;
    double c,d; 
    A()
    {
        cout<<"a= ";
        cin>>a;
        cout<<endl;
 
        cout<<"b= ";
        cin>>b;
        cout<<endl;
        
        cout<<"c= ";
        cin>>c;
        cout<<endl;
        
        cout<<"d= ";
        cin>>d;
        cout<<endl;
        
    }
    double S(int a, int b)
    {
        double s;
        s=a*b*3.14159;
        return s;
    };
    double S(double c,double d)
    {
        double s;
        s=c*d*3.14159;
        return s;
    };
};
 
int main()
{
    A ploshchad;
    cout<<"celochislen = "<<ploshchad.S(a,b);
    cout<<"veshchestvennoe"<<ploshchad.S(c,d);
    system ("PAUSE");
    return 0;
}
Добавлено через 46 минут
помогите пожалуйста пожалуйста пожалуйста((((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2011, 21:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод данных в функции конструктора и использование их в перегруженной функции (C++):

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов prin - C++
Братаны, выручайте!:help: Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в...

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов pri - C++
Братаны, выручайте! Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в...

Создание перегруженной функции - C++
Создайте перегруженные функции для вычисления абсолютной величины числа. Одна функция работает с числами типа int, другая с типом double....

Неоднозначный вызов перегруженной функции - C++
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;Windows.h&gt; #include &lt;iomanip&gt; #include...

Pow: нет перегруженной функции - C++
Ошибка 2 error C2661: pow: нет перегруженной функции, принимающей 1 аргументов C:\Users\student\Desktop\Языки программирования\zada4a...

Неоднозначный вызов перегруженной функции - C++
Ввести с клавиатуры число n. Динамически выделить память для массива целых чисел размером n. Заполнить массив данными с клавиатуры....

6
adico
13 / 13 / 1
Регистрация: 24.02.2011
Сообщений: 64
07.06.2011, 21:55 #2
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
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
public:
        int a,b;
        double c,d;     
        A()
        {
                cout<<"a= ";
                cin>>a;
                cout<<endl;
 
                cout<<"b= ";
                cin>>b;
                cout<<endl;
                
                cout<<"c= ";
                cin>>c;
                cout<<endl;
                
                cout<<"d= ";
                cin>>d;
                cout<<endl;
                
        }
        double S()
        {
                double s;
                s=a*b*3.14159;
                return s;
        };
        double S1()
        {
                double s;
                s=c*d*3.14159;
                return s;
        };
};
 
int main()
{
        A ploshchad;
        cout<<"celochislen = "<<ploshchad.S();
        cout<<"veshchestvennoe"<<ploshchad.S1();
        system ("PAUSE");
        return 0;
}
я думаю так=)
Ничего передавать ненадо.

Добавлено через 23 секунды
и юзайте this->
0
girlwithoutname
1 / 1 / 0
Регистрация: 19.12.2010
Сообщений: 37
08.06.2011, 09:29  [ТС] #3
но тогда функция не перегруженная, а это обязательное условие задачи
0
adico
13 / 13 / 1
Регистрация: 24.02.2011
Сообщений: 64
08.06.2011, 17:14 #4
Цитата Сообщение от girlwithoutname Посмотреть сообщение
Но как сделать так, что бы он брал эти переменные в функции конструктора???
Я ответил на этот вопрос.
Перегрузка функции это когда, вы перегружаете опереаторы "+", "-", ">", "<", "=", "<<", ">>", "==" и прочие. Но в коде у вас даже нет попыток их перегрузить.
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
08.06.2011, 17:19 #5
Цитата Сообщение от adico Посмотреть сообщение
Перегрузка функции это когда, вы перегружаете опереаторы "+", "-", ">", "<", "=", "<<", ">>", "==" и прочие.
ну вообще-то не только операторы...

автор можешь написать так
C++
1
2
3
        A ploshchad;
        cout<<"celochislen = "<<ploshchad.S(ploshchad.a,ploshchad.b);
        cout<<"veshchestvennoe"<<ploshchad.S(ploshchad.c,ploshchad.d);
1
Yur4e
2 / 2 / 0
Регистрация: 20.10.2010
Сообщений: 21
08.06.2011, 17:42 #6
А класс зачем создавать? Сделай две глобальные функции, с одинаковым именем но с разными аргументами.
И вообще, сформулируй задачу нормально. Заголовок темы не несёт смысловой нагрузки, просто набор слов.

Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
double square(int a, int b)
{
    cout << "double square(int a, int b)\n";
    return a * b * 3.14159;
}
 
double square(double a, double b)
{
    cout << "double square(double a, double b)\n";
    return a * b * 3.14159;
}
 
int main()
{
    square(1, 2);
    square(1.2, 2.3);
 
    cin.get();
}
0
girlwithoutname
1 / 1 / 0
Регистрация: 19.12.2010
Сообщений: 37
08.06.2011, 23:35  [ТС] #7
задача звучит так: создать класс по нахождению площади эллипса. ввод полуосей необходимо произвести в функции конструктора. расчет оформить с учетом перегрузки функций. и перегрузка имелось ввиду название одно а тип данных разный.

Добавлено через 10 минут
OstapBender, спасибо большое, все работает так как хотелось=*
0
08.06.2011, 23:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2011, 23:35
Привет! Вот еще темы с ответами:

Неоднозначый вызов перегруженной функции - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int _tmain(int argc, _TCHAR* argv) { float...

Сравнение строк в перегруженной функции - C++
Здравствуйте! есть перегруження функция Block* BlocksList::Find(string text) const { BlockNode * pNode = 0; int...

Найти ошибку в перегруженной функции - C++
Почему-то произведению присваивется размер массива. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Неоднозначный вызов перегруженной функции (sqrt) - C++
Вот в программе написано: int n, b; n = sqrt(b); // &lt;-- Неоднозначный вызов перегруженной функции... Может формат записи не тот ?


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

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

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