mirror of
https://github.com/VictorEijkhout/TheArtOfHPC_vol3_cppf08programming.git
synced 2026-01-24 22:44:48 +09:00
49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
/****************************************************************
|
|
****
|
|
**** This file belongs with the course
|
|
**** Introduction to Scientific Programming in C++/Fortran2003
|
|
**** copyright 2017-2021 Victor Eijkhout eijkhout@tacc.utexas.edu
|
|
****
|
|
**** constcopy.cxx : demonstate yes/no copying
|
|
****
|
|
****************************************************************/
|
|
|
|
#include <iostream>
|
|
using std::cin;
|
|
using std::cout;
|
|
|
|
class has_int {
|
|
private:
|
|
int mine{1};
|
|
public:
|
|
has_int(int v) { mine = v; };
|
|
has_int(has_int &other) { cout <<
|
|
"(calling copy constructor)" << '\n';
|
|
mine = other.mine;
|
|
};
|
|
};
|
|
|
|
//codesnippet constcopy
|
|
void f_with_copy(has_int other) {
|
|
cout << "function with copy" << '\n'; };
|
|
void f_with_ref(const has_int &other) {
|
|
cout << "function with ref" << '\n'; };
|
|
//codesnippet end
|
|
|
|
int main() {
|
|
|
|
has_int an_int(5);
|
|
|
|
//codesnippet constcopy
|
|
cout << "Calling f with copy..." << '\n';
|
|
f_with_copy(an_int);
|
|
|
|
cout << "Calling f with ref..." << '\n';
|
|
f_with_ref(an_int);
|
|
//codesnippet end
|
|
|
|
cout << "... done" << '\n';
|
|
|
|
return 0;
|
|
}
|