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 文件。
两件事:
你要在cpp文件里写
void DbConnection::ConnectToDatabase(const std::string 数据库名称)
{
...
}
等Retrieve函数告诉编译器这是class的函数。
- 当你在函数声明后加上 {} 时,你实际上在头文件中实现了函数。
我创建了一个带有头文件、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 文件。
两件事:
你要在cpp文件里写
void DbConnection::ConnectToDatabase(const std::string 数据库名称) { ... }
等Retrieve函数告诉编译器这是class的函数。
- 当你在函数声明后加上 {} 时,你实际上在头文件中实现了函数。