【发布时间】:2020-06-29 11:04:07
【问题描述】:
我有以下 3 个文件,main.cpp,然后是一个类定义,包括该类的头文件:
main.cpp:
#include <iostream>
#include "data_vars_class.hpp"
int main () {
DataVars dataVars();
return 0;
}
data_vars_class.hpp:
#include <string>
#include <vector>
class DataVars
{
private:
std::vector<std::string> csv_card_names;
public:
DataVars();
void getCSVData();
};
data_vars_class.cpp:
#include <iostream>
#include <vector>
#include <string>
#include "data_vars_class.hpp"
DataVars::DataVars()
{
std::cout << "constructor?";
getCSVData();
}
void DataVars::getCSVData()
{
std::cout << "Getting csv data!";
}
问题是当我构建和执行代码时,我只是得到一个空终端。我知道 data_vars_class.hpp 和 data_vars_class.cpp 都包含在构建中,这是我在 Geany 中的构建命令:
g++ main.cpp data_vars_class.cpp -o a.out
为什么我没有在终端中看到 cout 输出,就像在构造函数中我不应该看到“构造函数?”在终端?
谢谢
【问题讨论】:
-
尝试在文本后面加上
coutstd::endl,以确保将缓冲区刷新到控制台。 -
你在编译后运行程序吗?
-
我在 cout 中添加了
-
DataVars dataVars();声明了一个名为dataVars的函数,它不接受任何参数并返回一个DataVars类型的对象。要创建一个名为dataVars的对象,请删除()。 -
@underscore_d -- 有点像,但是当它谈到最令人烦恼的解析时,就会迷失在杂草中。这是一个复杂的问题,不需要理解这只是一个函数声明,就像
int f();。
标签: c++