Visual Studio 2019 调试器进入头文件而不是 cpp

Visual Studio 2019 debugger steps into header file instead of cpp

我创建了一个带有头文件、cpp 文件和主函数的小型 c++ 应用程序。 我希望头文件是一个 interface,它只会定义我的函数和属性,但 cpp 文件将是要实现的文件。

然而,当我创建我的文件时,在我的 main 函数中我有一个断点并尝试进入我的方法,它只是让我直接进入头文件定义而不是实现 cpp 文件。这是我的代码:

//header file
#pragma once
#include <string>
#include <SQLAPI.h>

class DbConnection
{
    public:
    int Id, Age;
    std::string Name;

    void ConnectToDatabase(const std::string databaseName) { }
    void Retrieve(const std::string table) { }
};

这是我的 cpp 文件:

#include "DbConnection.h"
#include <string>
#include <SQLAPI.h>
#include <iostream>

SAConnection sqlCon;
SACommand sqlCmd(&sqlCon);

int Id, Age;
std::string Name;

void ConnectToDatabase(const std::string databaseName)
{
    sqlCon.Connect(
        databaseName,
        ",
        ",
        SA_SQLServer_Client);
}
void Retrieve(const std::string table)
{
    //code to retrieve data
    std::cout << "success";
}

我的主要功能在一个单独的 cpp 文件中。我设置了一个断点并尝试进入方法 Retrieve,它将我带到头文件而不是 cpp。感谢任何有关调试的帮助。

#include "DbConnection.h"
#include <stdio.h>
#include <iostream>

int main()
{
    DbConnection con;

    con.ConnectToDatabase(
       "databaseParameter");
    
    con.Retrieve("tableParameter");

    return 0;
}

我认为这是两件事之一,要么我在 visual studio 2019 中的调试器设置不正确,要么与我的 #include "DbConnection.h" 语句如何包含在两者中有关cpp 文件。

两件事:

  1. 你要在cpp文件里写

    void DbConnection::ConnectToDatabase(const std::string 数据库名称) { ... }

等Retrieve函数告诉编译器这是class的函数。

  1. 当你在函数声明后加上 {} 时,你实际上在头文件中实现了函数。