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

Как работают конструктор и статические поля в этом коде?

08.06.2018, 08:52. Показов 730. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
using System;
 
namespace Test_C_{
class Entity{
    static int nextSerialNo;
    int serialNo;
    public Entity() 
    {
        serialNo = nextSerialNo++;
    }
    public int GetSerialNo() 
    {
        return serialNo;
    }
    public static int GetNextSerialNo() 
    {
        return nextSerialNo;
    }
    public static void SetNextSerialNo(int value) 
    {
        nextSerialNo = value;
    }
}
 
class EntityExample{
    public static void Main() 
    {
        Entity.SetNextSerialNo(1000);
        Entity e1 = new Entity();
        Entity e2 = new Entity();
        Console.WriteLine(e1.GetSerialNo());            //*Ответ №1* Выводит "1000"
        Console.WriteLine(e2.GetSerialNo());            //*Ответ №2* Выводит "1001"
        Console.WriteLine(Entity.GetNextSerialNo()); //Выводит "1002"
        Console.ReadKey();
    }
}
}
Почему *Ответ №1* не равен 1001, если при создании экземпляра е1 в конструкторе поле serialNo=nextSerialNo++(1000+1), а *Ответ №2* не равен 1002 (serialNo=nextSerialNo++(1001+1))?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2018, 08:52
Ответы с готовыми решениями:

Как конструктор копий получает доступ к private переменной CopySource.Buffer в этом коде?
#include <iostream> using namespace std; class MyString { private: char* Buffer; ...

Как правильно инициализировать статические поля класса
Здравствуйте, уважаемые форумчане! Столкнулся с проблемой, решение нашел, но идею еще нужно...

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

Классы (статические члены и конструктор копирования)
Добрый вечер! Написал программку, все нормально работает, но есть два нюанса: необходимо сделать...

1
15 / 15 / 16
Регистрация: 19.07.2017
Сообщений: 61
08.06.2018, 09:49 2
почитайте как работает инкремент, напишите в конструкторе
C#
1
 serialNo = ++nextSerialNo;
и будет вам счастье
1
08.06.2018, 09:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2018, 09:49
Помогаю со студенческими работами здесь

Конструктор класса, содержащего только статические члены
Практикуюсь по книге Стенли Липпмана "Язык программирования C++ вводный курс" 4 изд. Осваиваю...

Как пронумеровать текст в этом коде?
Очередной вопрос от полного профана в C++ Для проверки создал цикл while do, решил пронумеровать,...

Как дописать цикл в этом коде?
#include <graphics.h> #include <iostream.h> #include <conio.h> #include <math.h> #include...

Как работает сравнение в этом коде?
Объясните пожалуйста точно и правильно как происходит сравнение в этом коде: MemoryStream ms...


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

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