Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
kihtov23
1

Порядок записи полей базового и производного классов, почему сначала производного а потом базового, ведь должно быть наоборот ?

29.01.2014, 14:20. Показов 1814. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть простой пример. Получаю с помощью рефлексии поля двух классов, базового и производного. Почему сначала идет поле производного, а потом базового класса ? Ведь для правильной работы методы используют смещение полей, для этого сначала в объекте записываются поля базового класса, после них - производного. Может быть в данном случае это особенность работы метода GetFields ?

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
using System;
using System.Reflection;
namespace MyProgram
{
    class Program
    {
        static void Main()
        {
            Type t = typeof(B);
            FieldInfo[] fields = t.GetFields(BindingFlags.Instance | BindingFlags.Public);
            foreach (FieldInfo fi in fields)
            {
                Console.WriteLine(fi);
            }
            Console.ReadKey();
        }
 
    }
 
    class A
    {
        public int i = 1;
    }
 
    class B : A
    {
        public int j = 2;
    }
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2014, 14:20
Ответы с готовыми решениями:

Вызов методов базового и производного классов
Народ, объясните тупому механику раннего связывания. Вывод программы, что ниже, 22. Хотя если...

Наследование: почему вызывается метод базового класса, а не производного?
Всем привет, такой вопрос, почему вызывается в данном коде метод базового класса, а не производного...

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

Конструкторы базового и производного класса
class first { public: first(int a):first(a){} void Setfirst(int a){first=a;} int...

1
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
29.01.2014, 14:31 2

Не по теме:


Я думаю сортировка по алфавиту.



В чем проблема то?

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

Цитата Сообщение от kihtov23 Посмотреть сообщение
Может быть в данном случае это особенность работы метода GetFields ?
Да вы правы. Есть вероятность, что добавив новое поле получится совсем другой массив.
0
29.01.2014, 14:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2014, 14:31
Помогаю со студенческими работами здесь

Вызов методов производного класса из базового
Возможно ли, чтобы class A { void f1() { f2();//если вызвано из B, то вызывается B::f2(), а...

Инициализация членов производного кл. из конструктора базового кл.
Добрый вечер, уважаемые форумчане! Сразу код; вопрос ниже... #include <iostream> using...

Отрабатывает оператор базового, а не производного класса
Здравствуйте! Собственно, вопрос в следующем. Я перегрузил оператор потокового вывода для базового...

Из производного класса вызвать функцию базового
Есть два класса, необходимо из производного класса вызвать функцию базового. //...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru