You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++构造函数无输出问题咨询:终端未显预期内容原因?

为什么构造函数的cout输出没显示?

你这段代码的问题出在main.cpp里的这一行:

DataVars dataVars();

看起来你是想创建一个DataVars类的对象,但C++编译器会把这行代码解析成一个函数声明——声明了一个名为dataVars、返回DataVars类型、没有参数的函数,而不是实例化一个对象!

因为根本没有创建对象,构造函数自然不会被调用,所以你看不到constructor?和Getting csv data!的输出。

解决办法

把那行代码改成下面两种写法之一就行:

  • C++98及更早版本:
    DataVars dataVars;
    
  • C++11及以后版本(更推荐,能避免歧义):
    DataVars dataVars{};
    

修改后重新用你的编译命令:

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

运行./a.out就能看到构造函数里的输出了。

补充说明

这种语法歧义是C里的经典坑点,当你写Type name();时,编译器总会优先把它当作函数声明,而不是对象初始化。用{}初始化是C11引入的列表初始化语法,能有效避免这类解析歧义。

内容的提问来源于stack exchange,提问作者Geoff L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 11:07:50