Я добавил точки останова для каждой строки в редакции сообщества Visual Studio 2017 для следующего кода
#include "pch.h"
#include <iostream>
using namespace std;
// base class
class Vehicle {
public:
Vehicle()
{
cout << " **** This is a Vehicle **** " << endl;
}
};
// sub class derived from two base classes
class Car : public Vehicle {
};
// main function
int main()
{
// creating object of sub class will
// invoke the constructor of base classes
Car obj;
return 0;
}
Здесь задано действие для печати текста отладки при выполнении каждой строки.
Я создаю программу, затем запускаю новый экземпляр отладки. Я получил это
Выход № 1: первые 7 строк
main function
class car
blank line inside car class
// sub class derived
vehicle class closed
blank line after car class
// main
Затем я пересобрал программу и запустил новый экземпляр, и я получил это
Выход № 2: первые 7 строк
main function bracket open
// main
car class close
class car
blank line inside car class
blank line after car class
blank line after vehicle class
У меня отключена оптимизация.
Я новичок в C ++ и хотел бы знать, почему это происходит, компилируется ли он по-другому или что-то не так с выполнением действия точки останова?
РЕДАКТИРОВАТЬ: я добавил первые 7 строк вывода на скриншоте. Там вы можете видеть, что порядок выполнения действия точки останова отличается для двух запусков.
ПРИМЕЧАНИЕ: Обратите внимание, что выходные строки, которые вы видите, добавлены мной с использованием функции точки останова ->, таким образом Visual Studio будет распечатывать мое сообщение при достижении этой точки останова. Выполнение не остановится, оно просто распечатает любой текст, который я вставил в качестве действия точки останова