/****************************/
/* 関数(様々な引数) */
/* coded by Y.Suganuma */
/****************************/
#include <iostream>
using namespace std;
// クラス Complex
class Complex
{
public :
int x, y;
Complex(int x1, int y1) { // コンストラクタ
x = x1;
y = y1;
}
};
// 関数 func
int func(int x1, int &x2, const int *y1, int *y2, Complex z1, Complex *z2, int x3 = 10)
{
x1 += 10;
x2 += 10;
// y1[0] = 100; // const 指定のため修正不可
y2[0] = 100;
z1.x = 1000;
(*z2).x = 1000;
return (x1 + x2 + x3);
}
int main()
{
int a1 = 1, a2 = 2;
int b1[] = {10, 20};
int b2[] = {10, 20};
Complex c1(1, 2);
Complex *c2 = new Complex(1, 2);
printf("a1 %d a2 %d b1[0] %d b1[1] %d b2[0] %d b2[1] %d c1.x %d c2.x %d\n", a1, a2, b1[0], b1[1], b2[0], b2[1], c1.x, (*c2).x);
int r = func(a1, a2, b1, b2, c1, c2);
printf("a1 %d a2 %d b1[0] %d b1[1] %d b2[0] %d b2[1] %d c1.x %d c2.x %d r %d\n", a1, a2, b1[0], b1[1], b2[0], b2[1], c1.x, (*c2).x, r);
return 0;
}