class T
{
public:
T(int val)
{
}
}
T t1(100);
这里能不能用std::cout输出t1呢
另外t1的值是多少呢,为什么是100呢,它并没有属性啊,只有个构造函数
该回答通过自己思路及引用到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
对象的值。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
不能用cout输出t1,因为t1是个类对象,类对象里并没有重载输出函数
t1是个类对象,不是具体的值类型
构造函数传递了参数,但这个类是个不完整的类,应该有成员变量接收这个val值
有一栋100层的楼,和2个坚硬的鸡蛋,从楼上扔下鸡蛋,鸡蛋会在大于某一层刚好开始碎,那最少几次能测出鸡蛋能承受的最大楼层呢?
如果从第50层扔下鸡蛋没碎,第51层扔下碎了,那鸡蛋能承受的最大楼层就是50。
注意:你手上只有2个鸡蛋,如果扔下碎了,就没法再使用了。
小明条件反射般作答,从1层开始往上测试,到第i层碎掉就有结果了。
小K说,这个方法确实可以测出来,但太慢了(当然暂不考虑下楼捡蛋的时间啦)。如果100层碎,最坏你得测试100次。如果先从第50层扔下呢?
这样分2种情况,碎和不碎:
碎:则还有1个蛋,再从1层开始逐层往上测试,最坏测到49层,总共50次。
不碎:则还有2个蛋,再从51层开始逐层往上测试,最坏测到100层,总共51次。
小明说,这个方法确实好一些,等等,你刚才说第2种情况是什么?
小明接着说,你还有2个蛋啊,兄弟,为啥不充分利用呢?
不考虑1-50层,可以把51-100层看成一栋新的楼,现在问题就变成用2个蛋测量50层楼,和原始问题并没有本质区别啊,只是规模更小了。
因为还有2个蛋,所以可以在75层再测试一次,就算碎了,也还有1个蛋,再从低层往上逐层测试。
这个问题包含了规模更小的子问题,引导我们可以先从小规模的问题来思考。