Поделиться через


Фрагменты кода Visual C++

В Visual Studio можно использовать фрагменты кода для добавления часто используемого кода в файлы кода C++. Фрагменты кода ускоряют, упрощают написание программ и делают этот процесс более надежным.

Полный список фрагментов кода C++

Фрагменты кода работают так же, как в C++ и C#, но набор фрагментов кода по умолчанию отличается. Чтобы просмотреть список доступных фрагментов кода C++, выберите диспетчер фрагментов кода "Инструменты>" в строке меню Visual Studio или нажмите клавиши CTRL+K, B, а затем выберите Visual C++ в раскрывающемся меню "Язык".

Разверните папку Visual C++, чтобы просмотреть имена всех фрагментов кода C++ в алфавитном порядке. Выберите фрагмент, чтобы просмотреть сведения о фрагменте кода. Дополнительные сведения о фрагментах кода см. в разделе "Фрагменты кода".

Фрагменты расширения и фрагменты окружения

Вы можете вставить фрагменты кода расширения в определенные расположения в коде или заключить выбранный код с фрагментами кода в окружении .

Вставка фрагмента кода

Чтобы вставить фрагмент кода C++, выполните следующее:

  1. Откройте файл C++ .cpp или .h и поместите точку вставки в файл.

  2. Выполните одно из следующих действий:

    • Щелкните правой кнопкой мыши и выберите "Вставить фрагмент" в контекстном меню.
    • В строке меню Visual Studio выберите "Изменить>IntelliSense>Insert Snippet".
    • Нажмите клавиши CTRL+K, X.
  3. Дважды щелкните #if в раскрывающемся списке или введите #if и нажмите клавишу ВВОД или ВКЛАДКА. Следующий код добавляется в точку вставки:

    #if 0
    
    #endif // 0
    
  4. Замените правильное 0 условие.

Окружите выделенный код фрагментом кода

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

  1. Откройте .cpp C++ или H-файл и выберите код. В следующем примере выбрана строка #include "pch.h" .

  2. Выполните одно из следующих действий:

    • Щелкните правой кнопкой мыши и выберите "Окружить с помощью " в контекстном меню.
    • В строке меню Visual Studio выберите "Изменить>IntelliSense>" в окружении.
    • Нажмите клавиши CTRL+K, S.
  3. Дважды щелкните #if в раскрывающемся списке или введите #if и нажмите клавишу ВВОД или ВКЛАДКА. Код окружает выбранную строку.

    #if 0
    #include "pch.h"  // or whatever line you had selected
    #endif // 0
    
  4. Замените правильное 0 условие.

Использование фрагмента кода C++

Имена большинства фрагментов кода C++ являются самообъяснительными, но некоторые имена могут быть запутаны.

Класс, classi

Фрагмент class кода предоставляет определение класса с именем MyClass. Определения соответствующего конструктора по умолчанию и деструктора находятся за пределами класса.

class MyClass
{
public:
    MyClass();
    ~MyClass();

private:

};

MyClass::MyClass()
{
}

MyClass::~MyClass()
{
}

Фрагмент classi кода также предоставляет определение класса с именем MyClass, но конструктор по умолчанию и деструктор определяются внутри определения класса.

class MyClass
{
public:
    MyClass()
    {
    }

    ~MyClass()
    {
    }

private:

};

Для, forr, rfor

Три разных for фрагмента предоставляют различные виды for циклов.

  • Фрагмент rfor кода предоставляет диапазон для цикла. Эта конструкция предпочтительнее, чем циклы for на основе индекса.

    for (auto& i : v)
    {
    
    }
    
  • Фрагмент for кода предоставляет for цикл, в котором условие основано на длине объекта в size_t.

    for (size_t i = 0; i < length; i++)
    {
    
    }
    
  • Фрагмент forr кода предоставляет обратный for цикл, в котором условие основано на длине объекта в целых числах.

    for (int i = length - 1; i >= 0; i--)
    {
    
    }
    

Фрагмент деструктора (~)

Фрагмент фрагмента деструктора ~ показывает другое поведение в разных контекстах. Если вставить его в класс, он предоставит деструктор для этого класса.

Например, если вставить фрагмент деструктора внутри класса с именем SomeClass, он предоставляет деструктор для SomeClass.

class SomeClass {
    ~SomeClass()
    {

    }
};

При вставке фрагмента деструктора за пределами класса он предоставляет деструктор с именем заполнителя.

~TypeNamePlaceholder()
{

}