引用与函数默认参数

    xiaoxiao2026-01-11  0

    #include <iostream> using namespace std; class Foo { public: Foo(int a = 0) : a_(a){} Foo(const Foo& foo) { a_ = foo.a_; } public: int a_; }; Foo a; int func1(const Foo & foo = Foo() ) { return foo.a_; } int func2(Foo & foo = a ) { ++foo.a_; return foo.a_; } //func3 会出现如下编译错误 // error: invalid initialization of non-const reference of type ‘Foo&’ from an rvalue of type ‘Foo’ // void func3(Foo & foo = Foo() ) //void func3(Foo & foo = Foo() ) //{ // //} int main() { cout << a.a_ << endl; //输出 0 cout << func2() << endl; //输出 1 cout << a.a_ << endl; //输出 1 Foo b(10); cout << func2(b) << endl; //输出 11 cout << a.a_ << endl; //输出 1 cout << b.a_ << endl; //输出 11 return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-1305905.html
    最新回复(0)