【问题标题】:C++ Constructor not showing outputC++ 构造函数不显示输出
【发布时间】: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++


【解决方案1】:

通过构建二进制文件来运行代码,您必须在构建后在终端中编写 ./a.out。

g++ main.cpp data_vars_class.cpp -o a.out
./a.out

【讨论】:

    猜你喜欢
    • 2017-04-03
    • 2019-05-14
    • 2018-03-07
    • 2023-03-22
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2018-05-28
    相关资源
    最近更新 更多