kou6839の日記

c++ 競プロ(特にcsacademy) linuxについて書きます。普段は自動車屋さんでナビ開発してます。転職先を探しています!!。

c++で違う型を返す

知らなかったんですが、
以下のように、クラスB型のコンストラクタにクラスA型を受け取るものを作っておくと、クラスB型を返す関数funcの戻り値をクラスA型にすることができます。
どういう目的でそうなったのかはわからないですが・・・。

class A {
public:
	int a;
	A(int a) :a(a) {}
};

class B {
public:
	int b;
	B(int b) : b(b) {}
	B(A AA) { b = AA.a;}
};

B Func() {
	A tmp(100);
	return tmp;
}

int main() {

	B b = Func();

	cout << b.b << endl; //100

	return 0;
}