&、bool、三目运算符
C++认为结构体是一个新的类型,所以可以直接定义变量
新增的bool类型:只有两个值 true (1)和 false(0)
bool类型和float类型与 0 进行比较
浮点型数据和 0 比较需要精度
三目运算符可以作为左值来使用
(a>b ? a : b) = 100;
结果中不能存在常量
拷贝构造: 类型(const 类名& 变量名)
Test(const Test &obj) // 拷贝构造函数 赋值构造函数
{
m_a = obj.m_a;
printf ("拷贝构造被调用\n");
}
int main1()
{
Test t = 10;
Test t1 = t;
t1.show();
t1 = t; // 赋值操作 t1已经存在, 这里不会调用构造函数 和对象初始化进行区分
}
函数参数是对象的时候,实参到形参的传递会调用拷贝构造 ==> 建议使用引用
// 对象作为返回值的时候,也会调用拷贝构造函数 ===> 不同的编译对函数返回值处理方式可能不同
Test func()
{
Test t = 10;
return t;
}