龍神録プログラミングの館2について_C++基礎

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
にこよん
記事: 112
登録日時: 2年前
住所: 大阪府
連絡を取る:

龍神録プログラミングの館2について_C++基礎

#1

投稿記事 by にこよん » 2年前

こんばんは、いつもお世話になってます。

C++を入門サイトで勉強したのち、竜神録2に来たのですが、
入門サイトと、竜神録2プログラミングの館で分からないことがいくつかあったので質問させていただきます。
説明していただけるとありがたいですが、ググっても分からなかったものなので
こういう単語でググれば出てくるよ、等の助言でも助かります。


龍神録2の3章のコード↓からなのですが

コード:

#pragma once
class SystemMain final
{
public:
	SystemMain() = default;
	~SystemMain() = default;
	bool initialize() const;
	void finalize() const;
	void main() const;
};
1. = defaultは何のためについているのか、どういった意味があるのか

2. ~SystemMain()に書いてある「~」はどういう意味があるのか。または調べ方

3. void main() const の「const」は書き換えた時にコンパイルエラーを起こすためにつけているのだと書いてあったが(入門サイトに)
変数ではなくクラスの中にある関数なのに書き換わることができる?
このconstがあることによってどのような場合にエラーが起きるのか、
4. また、このconstがなければどのように書き換えることができるのか。

1つだけでもご教示願います。
最近は東方風アクションゲームを少しずつ作ってる人です
東方翠風燐FreeDownload⇒http://dxlib.o.oo7.jp/cgi/patio/read.cgi?no=212

Rittai_3D
記事: 524
登録日時: 7年前

Re: 龍神録プログラミングの館2について_C++基礎

#2

投稿記事 by Rittai_3D » 2年前

1. https://cpprefjp.github.io/lang/cpp11/d ... tions.html
「default 指定子」で検索してみてください。
コンパイラがコンストラクタ/デストラクタを自動生成することを明示します。

2. 「デストラクタ」で検索してみてください。
オブジェクトが解体されるときに呼ばれます。参考
わかりやすいように一つ余分にブロックを追加しています。

コード:

#include <iostream>

class test
{
public:

	test()
	{
		std::cout << "constructor" << std::endl;
	}
	
	~test()
	{
		std::cout << "destructor" << std::endl;
	}
};

int main()
{
	{
		test t;
	} // ここでデストラクタが呼び出される
}
3. 4.

コード:

#include <iostream>

class test
{
	int m_value;
	
public:

	test() : m_value( 42 ) {}
	
	int get() const
	{
		m_value *= 2; // 変数に変更を加えようとするとError
		return m_value;
	}
};

int main()
{
	test t;
	t.get();
}
参考
このように、constメンバ関数内でデータメンバを書き換えられないようにするものです。
getterのように、書き換える必要がない/書き換えてはいけない関数にconstをつけます。

C++にあまり精通していないので間違えたことを言っていたら申し訳ないです。
初心者です

アバター
にこよん
記事: 112
登録日時: 2年前
住所: 大阪府
連絡を取る:

Re: Rittai_3D様

#3

投稿記事 by にこよん » 2年前

constの分かりやすい説明ありがとうございました。
とても分かりやすかったです。

上二つはいただいた情報をもとに勉強してきます。
ありがとうございました!!
最近は東方風アクションゲームを少しずつ作ってる人です
東方翠風燐FreeDownload⇒http://dxlib.o.oo7.jp/cgi/patio/read.cgi?no=212

アバター
にこよん
記事: 112
登録日時: 2年前
住所: 大阪府
連絡を取る:

Re: 龍神録プログラミングの館2について_C++基礎

#4

投稿記事 by にこよん » 2年前

もやもやがすべて彼方へと吹き飛びました。

とても分かりやすい説明ありがとうございました!!
最近は東方風アクションゲームを少しずつ作ってる人です
東方翠風燐FreeDownload⇒http://dxlib.o.oo7.jp/cgi/patio/read.cgi?no=212

返信

“C言語何でも質問掲示板” へ戻る