Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 20.09.2015
Сообщений: 13
1

Объект базового класса вернуть как get set

05.10.2015, 12:58. Показов 1955. Ответов 5
Метки нет (Все метки)

Дан базовый класс А, от него унаследован производный класс B, и в нем определен объект класса А, Нужно в методе get вернуть подобъект класса B, то есть его родителя.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
class A
{
public int f;    //или protected
public char c;
public A(int d, char ch){ this.f = d; this.c = ch;}
}
 
class B:A
{
string e;
B(string en, char che, int dn):base(dn, che) {this.e = en;}
public A a {{get ......} set {.......}} //   Вот тут-то возникли проблемы что писать, выдает ошибку при попытке написать return base
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2015, 12:58
Ответы с готовыми решениями:

Как сложить объект базового класса с объектом производного(наследуемого класса)
Как умножить объект базового класса с объектом производного(наследуемого класса): ozenka - объект...

как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса?
я хотел так, но программа просто падает void Student::add(Base** head) { cout << "I here" <<...

Методы get и set для объектов базового класса
class B:A { B():base(){} public A a; public A aA //нужно определить...

Почему объект производного класса не видит префиксный оператор из базового класса?
Короче создал я базовый класс с перегруженным префиксным оператором ++. Потом чтоб его...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
5
623 / 563 / 165
Регистрация: 17.07.2012
Сообщений: 1,604
Записей в блоге: 1
05.10.2015, 13:15 2
Виталя_, base используется для доступа к членам базового класса и никак не связан с объектом, который вам надо вернуть. В данной ситуации вам поможет return this;
0
1 / 1 / 0
Регистрация: 20.09.2015
Сообщений: 13
05.10.2015, 13:27  [ТС] 3
Тогда он возвращает весь объект, то есть и элементы в В тоже
0
623 / 563 / 165
Регистрация: 17.07.2012
Сообщений: 1,604
Записей в блоге: 1
05.10.2015, 13:38 4
Виталя_, в принципе да, так и должно быть. Поймите, у вас какого-то базового подобъекта не существует, а существует объект B с полями/методами унаследованными от А.
0
308 / 316 / 119
Регистрация: 29.10.2011
Сообщений: 1,003
05.10.2015, 18:13 5
Цитата Сообщение от Виталя_ Посмотреть сообщение
Тогда он возвращает весь объект, то есть и элементы в В тоже
явно приведите потом к А, благодаря инкапсуляции поля В вам будут не доступны, но, как выше сказано, они там все равно будут.

C#
1
public A a { get { return (A)this; } }
1
1 / 1 / 0
Регистрация: 20.09.2015
Сообщений: 13
07.10.2015, 10:19  [ТС] 6
Короче, не так. Таким образом он прост вернет ссылку на действующий объект. А вот так правильно:

C#
1
public A a { get { return new A (this.Name, this.Age); }} //Ну или какие-то другие поля определенные в конструкторе базового
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2015, 10:19

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Указатель на объект базового класса и адрес объекта производного класса
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; }...

Ссылка базового класса на объект производного класса
Граждане, объясните почему такое происходит. До того как проверил, думал, что если для ссылки...

Указатель на объект базового класса
Есть класс Автор с полями фамилия, год рождения и пол и есть второй класс Книга с полями название,...

Указатель на объект базового класса
Добрый вечер, форумчане. Имеется функция, которая находит в бинарном дереве(сортируемом по id)...


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

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

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