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

Можно ли складывать поля классов? - C++

Восстановить пароль Регистрация
 
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
17.03.2012, 22:44     Можно ли складывать поля классов? #1
Базовый класс А, поле а.
Производный класс В, поле в.
Можно ли создать метод, складывающий поля а и в?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A {
public:
  int a;
  void a_metod()
  {
      cout << "put a";
      cin >> a;
  }
};
 
class B : public A {
public:
  int b;
  void b_metod()
  {
      cout << "put b";
      cin >> b;
  }
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2012, 22:44     Можно ли складывать поля классов?
Посмотрите здесь:

C++ указатель на void в иерархии классов. можно ли так делать?
С помощью перегрузки операторов складывать, вычитать натуральные дроби C++
Выяснить можно ли с поля (k,l) одним ходом ферьзя попасть на поле(m,n). Если нет, то выяснить, как это можно сделать за два хода C++
C++ Создать не менее 2-х базовых классов и класс, наследующий их поля
Как описывать множества, пересекать их, складывать C++
C++ Как складывать строки или символы через циклы с использованием массивов
Какое консольное mini-приложение можно сделать с использованием классов (для практики)? C++
Можно ли хранить имена классов в массиве C++
Можно ли добавлять статические объекты классов в STL контейнеры? C++
C++ Можно ли создать в C++ ограниченную переменную (для экономии памяти) без использования классов
C++ Наследование классов как можно оптимизировать код и условие
Нужно сделать композицию классов через объектные поля. (Не наследование!) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gore-lykovoe
 Аватар для gore-lykovoe
31 / 31 / 1
Регистрация: 04.04.2010
Сообщений: 414
17.03.2012, 22:57     Можно ли складывать поля классов? #2
Можно, только метод должен относиться к классу наследнику.
Konstantin_D
 Аватар для Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
17.03.2012, 22:59     Можно ли складывать поля классов? #3
У вас поля a и b объявлены как public.
Складывайте их без всяких методов
C++
1
2
3
4
5
6
    A a;
    B b;
    a.a = 3;
    b.a = 4;
    b.b = 5;
    int c = a.a + b.a + b.b;
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
18.03.2012, 01:16  [ТС]     Можно ли складывать поля классов? #4
gore-lykovoe, что-то вроде метода, проверяющего поля всех объектов:если поля в объектов окажутся меньше полей а объектов , необходимо в поля в записать сумму полей а и в.
Но программа не правильно работает. в в не попадает сумма, туда записывается какой-то мусор.
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
class A
{public:
int a;
 void a_metod()
 {
     cout<<"\n input a ";
     cin>>a;
 }
 void bb_metod(){;}
 
};
 
 class B:public A
 {public:
 int b;
 void b_metod()
 {
     cout<<"\n input b ";
     cin>>b;
 }
 int bb_metod()
 {
     A::bb_metod();
     if(b<a)
       b=b+a; 
     cout<<"\n b "<<b;
     return b;
 }
 };
 
 
int _tmain(int argc, _TCHAR* argv[])
{   A s1;
    B s2;
    s1.a_metod();
    s2.b_metod();
    s2.bb_metod();
    cout<<"\n b="<<s2.b;
    getch();
    return 0;
}
Konstantin_D
 Аватар для Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
18.03.2012, 02:38     Можно ли складывать поля классов? #5
Цитата Сообщение от Яна_Max Посмотреть сообщение
gore-lykovoe, что-то вроде метода, проверяющего поля всех объектов:если поля в объектов окажутся меньше полей а объектов , необходимо в поля в записать сумму полей а и в.
Каких всех объектов? Да и в объекте класса А только одно поле! Что-то с методом вы накрутили.
А сами классы без этого "хитрого" метода могут выглядеть как-то так:
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
#include <iostream>
using namespace std;
 
class A
{
private:
    int a;
public:
    A(int x = 0): a(x) {}
    void set_a(int x) {a = x;}
    int get_a() const {return a;}
};
 
class B: public A
{
protected:
    int b;
public:
    B(int x = 0, int y = 0): A(x), b(y) {}
    void set_b(int x) {b = x;}
    int get_b() const {return b;}
};
 
 
int main()
{
    int tmp;
    A a;
    cout << "Obj a:\nEnter a: ";
    cin >> tmp;
    a.set_a(tmp);
 
    B b;
    cout << "Obj b:\nEnter a: ";
    cin >> tmp;
    b.set_a(tmp);
    cout << "Enter b: ";
    cin >> tmp;
    b.set_b(tmp);
 
    cout << "a: " << a.get_a() << endl;
    cout << "b: " << b.get_a() << ", " << b.get_b() << endl;
 
    return 0;
}
Yandex
Объявления
18.03.2012, 02:38     Можно ли складывать поля классов?
Ответ Создать тему
Опции темы

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