class T
{
public:
T(int val)
{
}
}
T t1(100);
这里能不能用std::cout输出t1呢
另外t1的值是多少呢,为什么是100呢,它并没有属性啊,只有个构造函数

为什么是100呢,它并没有属性啊,只有个构造函数
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- Leodong. 2023-04-26 15:47关注
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
在C++中,当我们创建一个类的对象时,构造函数会被自动调用。在你的代码中,你定义了一个T
类,它只有一个构造函数,该构造函数带有一个int
类型的参数,并在函数体内没有做任何事情。因此,当你创建t1
对象时,它将调用T
类的构造函数,并传递整数值100作为参数。即使类中没有显式声明任何属性,由于在C++中对象的内存布局是在编译时确定的,因此对象仍然会占用一些空间,以存储对象的信息。在你的例子中,
t1
对象的值为100,是因为在构造函数中传递了100。然而,由于T
类没有定义任何属性或方法,因此你无法使用std::cout
输出t1
对象的值或任何其他信息。如果你希望能够输出
t1
的值,你可以向T
类中添加一个成员函数,该函数返回构造函数中传递的值,例如:class T { public: T(int val) { value = val; } int getValue() { return value; } private: int value; }; T t1(100); std::cout << t1.getValue() << std::endl; // 输出100
在上面的代码中,我们添加了一个名为
getValue()
的公共成员函数,它返回构造函数中传递的值。然后,我们可以使用std::cout
输出t1
对象的值。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报