c++参数传递和返回值

来源:互联网 发布:虚拟机linux网络配置 编辑:程序博客网 时间:2024/05/13 13:35

1. c++形式参数类型和返回值类型如果是引用,那么在传递时,会把实参或者返回值的引用自动赋值给形式参数(返回值)

 

2. C++返回值赋值和返回值的使用往往会进行编译器的优化,例如:下面的调用中,只会调用两次构造函数(一次是默认构造函数,另外一次是自动拷贝构造函数)

Student s = getStudent();

Student getStudent()

{

    return Student s;

}

 

3. Student s;

Student s2 = s;

Student s3(s);

编译器会自动将上述第二句优化成第三句

 

4. C++函数参数(或者返回值)赋值时,如果其类型是类并且对应的构造函数存在,那么会自动调用匹配的构造函数构造目标类型,例如

Student s = getStudent();

Student getStudent()

{

    Student s;

    return &s;

}

 

Student(const student* s)

{

}

虽然返回值类型是Student类对象,但是返回值是指针并且存在对应的构造函数(student指针构造函数),所以程序能够正确编译,但是如果没有显式重载对应的特殊构造函数,程序编译不能通过。

原创粉丝点击