したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

741年目

1マロン:2018/12/01(土) 09:06:19
国民的MMORPGゲームのスレへようこそ

727マロン:2018/12/03(月) 04:24:36
俺の大好きなゲームきた!と思ったらもう終わりか

728マロン:2018/12/03(月) 04:27:30
人狼北ア

729マロン:2018/12/03(月) 04:40:17
300000にこだわる男

730マロン:2018/12/03(月) 04:43:04
多重継承できないよ
しないほうがいいってのが一般的な考え

731マロン:2018/12/03(月) 04:44:35
何でもできちゃうC++はすごいね

732マロン:2018/12/03(月) 04:47:56
Mainの(string[] args)を毎回消してるけど、意味は知っている?
実際消して問題ないんだけど。

733マロン:2018/12/03(月) 04:49:43
戦後さんこんばんは
見るに今はオーバーライドだかなんだかをやってるあたり?

734マロン:2018/12/03(月) 04:50:49
ああ、継承
前のクラスの能力を保持したまま新規クラス作れるとかそんなんだっけ

735マロン:2018/12/03(月) 04:51:56
別のインスタンス作ってるから、当然Kittyがでるよ

736マロン:2018/12/03(月) 04:52:22
基底クラスの変数なりを明示的に呼び出すthisみたいなbaseってキーワードがあります
自分で書く分には継承なんか使わんけど

737マロン:2018/12/03(月) 04:53:16
それpublic string str = "Tokyo mew mew";からpublic stringを抜いて実行することできたっけ?

738マロン:2018/12/03(月) 04:54:34
ああ、元のクラスで変数宣言してても継承先のクラスでは使えないのか

739マロン:2018/12/03(月) 04:55:55
フィールドで代入できないだけでpublicだから使えるんじゃないの?
ぼくの知識が間違ってるの?

740マロン:2018/12/03(月) 04:56:57
>>739
あってるよ、フィールドじゃ無理

741マロン:2018/12/03(月) 04:57:06
申し訳ありませんが、画面が見切れててそっち見えてないです

742マロン:2018/12/03(月) 05:00:15
newないバージョンでコンパイルしたとき警告でてた?

743マロン:2018/12/03(月) 05:04:05
戦後さん。newない場合はプログラム実行時にこういうのが出るよ。
ttps://gyazo.com/ae9aa017bf794ed4f72bebbae219b0ef

744マロン:2018/12/03(月) 05:04:49
下のエラー一覧見て

745マロン:2018/12/03(月) 05:16:20
まずTokyoMMとはなんなのか
なぜなのか

746マロン:2018/12/03(月) 05:18:51
なんかFF6か7でこんな吹雪のBGMを聞いたなあ

747マロン:2018/12/03(月) 05:20:49
そんなに東京みゅーみゅーが好きなの?

748マロン:2018/12/03(月) 05:21:27
2018年にもなって
こんなに東京ミュウミュウを聞くとは思わなかった

749マロン:2018/12/03(月) 05:23:10
東京ミュウミュウを連呼してる時点でヤバい人です

750マロン:2018/12/03(月) 05:23:12
アニメ放送が2002年とかっていう、おじさん世代です

751マロン:2018/12/03(月) 05:23:47
東京ミュウミュウ連呼おじさん

752マロン:2018/12/03(月) 05:24:51
100人もおじさんの東京ミュウミュウ連呼を聞いている

753マロン:2018/12/03(月) 05:26:54
俺ちゃんと指摘したよ。そこのページ古いって

754マロン:2018/12/03(月) 05:29:07
ちゃんと調べよ
ttp://wisdom.sakura.ne.jp/programming/cs/cs18.html

755マロン:2018/12/03(月) 05:30:02
とりあえずCtrl + Fで検索しよ。上から読むの面倒でしょ

756マロン:2018/12/03(月) 05:31:17
これが戦後が連呼してたやつらしいです
ttps://www.youtube.com/watch?v=2B4HQ8pqOsU

757マロン:2018/12/03(月) 05:32:06
これ朝やってたやつだ

758マロン:2018/12/03(月) 05:36:01
そりゃシグネチャってただの英単語だしなw

759マロン:2018/12/03(月) 05:42:07
戦後ってヤバい人なの?東京ミュウミュウとかデ・ジ・キャラット連呼してる人初めて見た

760マロン:2018/12/03(月) 05:47:15
もう毎回手打ちしなくてもよくね

761マロン:2018/12/03(月) 05:53:07
オーバーロードとオーバーライド。似ているようでぜんぜん違うもの

762マロン:2018/12/03(月) 05:54:14
マジカルにゃんにゃんやってないかー
かーっ

763マロン:2018/12/03(月) 05:54:37
一番重要なやつ飛ばしちゃうやつー
ニャンニャン

764マロン:2018/12/03(月) 05:58:33
応急処置でいいの見つけたわ。
Console.ReadKey();
最後の30000からこれにすれば、キー押せばコンソール消えるよ

765マロン:2018/12/03(月) 06:00:18
ちがう。Main(){ Console.ReadKey(); }

766マロン:2018/12/03(月) 06:00:29
戦後さん
応急処置では何をしていたのか全くわかっていないことが露呈していますよ

767マロン:2018/12/03(月) 06:01:11
せめて、メインの中に書いて

768マロン:2018/12/03(月) 06:01:48
違います

769マロン:2018/12/03(月) 06:03:56
インデント増やしたり下げたりは複数行選択しておけば一気にできるよ

770マロン:2018/12/03(月) 06:11:04
戦後は何か勘違いしてそうだから、書くね。
Test obj = new Test();
obj = new Test("Tokyo mew mew");

new Test();
new Test("Tokyo mew mew");
でも動くよ

771マロン:2018/12/03(月) 06:12:51
Test objとかなくてもクラスのインスタンスは作れるってこと。
そして、インスタンスを作られたラコンストラクタが呼ばれる

772マロン:2018/12/03(月) 06:13:59
参照型の変数を箱っていうのやめてw

773マロン:2018/12/03(月) 06:14:35
デフォルトコンストラクタじゃないよ。
自分でpublic Test()で宣言してるよ。

774マロン:2018/12/03(月) 06:15:31
「コンストラクタが宣言されていないクラスでも、デフォルトコンストラクタが存在します
デフォルトコンストラクタは、何も引数を受け取らない public なコンストラクタです」

775マロン:2018/12/03(月) 06:17:49
両方出ることがただしんだよ
さっきは戦後さんもそう言ってたじゃない
コンストラクタを二回呼び出してるんだから

776マロン:2018/12/03(月) 06:18:16
Test objがあるせいで理解できてないなw
>>770で動かせば理解できるのでは?

777マロン:2018/12/03(月) 06:20:41
objに何が入るかは
メンバに
public string name;
を追加して

コンストラクタを
Test()
{
 name = "Kitty";
}

Test(string str)
{
 name = str;
}

static void Main()
{
 Test obj = new Test();
 Console.WriteLine(obj.name);

 obj = new Test("mew mew");
 Console.WriteLine(obj.name);

 Console.ReadKey();
}

じゃわからん?

778マロン:2018/12/03(月) 06:22:39
new Test();で箱ができるけど、箱はでっかいから参照しないと行けない
obj = new Test();
で箱への参照ポインタをobjに入れてくれてる

次の
obj = new Test("mew mew");
で、"mew mew"を使って作られた新しい箱ができて、
その箱への参照ポインタをobjに入れてくれてる

779マロン:2018/12/03(月) 06:23:46
参照型の変数は箱というか矢印みたいな認識をしてほしいなあっていつか言おうと思ってた

780マロン:2018/12/03(月) 06:24:49
Testのメンバはnameであって、
strはメソッドの引数で指定してあるだけで使ってないでしょ

781マロン:2018/12/03(月) 06:26:46
objがインスタンス化ってのがどうしても理解できていなさそうで怖いw

782マロン:2018/12/03(月) 06:27:33
いや、まあ、objは変数ではある
変数ではあるんだけども、まあそういうことです

783マロン:2018/12/03(月) 06:28:53
>>237

784マロン:2018/12/03(月) 06:30:18
言われてみればぼくもオブジェクトってなんなのか詳しく説明できる気がしない
クラスをインスタンス化したものです じゃ違うんでしょうか先生方

785マロン:2018/12/03(月) 06:31:22
objってのは変数とは呼ぶけど、中にはいっているのはnew Test();っていうインスタンス化によって作られたインスタンス
ちなみに、オブジェクトってのはインスタンスよりももっと大きい意味でインスタンスのこともオブジェクトって言う
オブジェクトとインスタンスの違いはなんだったかな

786マロン:2018/12/03(月) 06:32:46
さらに混乱させるとC#ではint型なんかもじつはオブジェクトなんだ

787マロン:2018/12/03(月) 06:34:20
まず、オブジェクトって言葉が一般的すぎて、使われ方に範囲がある。
なので、C++でもC#でもVBでも「オブジェクト」といった言葉が使われる。
C$でオブジェクトといえば、クラスをインスタンス化したものっ「インスタンス」て覚えればいいよ。

788マロン:2018/12/03(月) 06:34:51
起きて

789マロン:2018/12/03(月) 06:36:34
クラス: 設計図
インスタンス: 設計図を元に作られた製品
オブジェクト: 俗語 インスタンスのことを一般的にオブジェクトと呼ぶ ただし、俗語であり、範囲が大きいので、ものによってはクラスのこともオブジェクトと呼ぶこともある

790マロン:2018/12/03(月) 06:39:38
インスタンス化しなおしてるのではなく新しいインスタンスを作ってます
前にnewしたやつはどこからも参照されてないインスタンスとして存在はしてる

791マロン:2018/12/03(月) 06:39:59
そりゃ、フィールドでint xを宣言しなきゃ

792マロン:2018/12/03(月) 06:40:01
だってint x;って定義している場所が、コンストラクタの中であって、Testのメンバじゃないでしょ

793マロン:2018/12/03(月) 06:40:50
スコープについて戻ってまた勉強し直しましょう

794マロン:2018/12/03(月) 06:41:09
引き継ぐ云々はスコープの話です

795マロン:2018/12/03(月) 06:41:47
コンストラクタはインスタンス化したときに、必ず呼ばれるメソッドだと思えばいいよ

796マロン:2018/12/03(月) 06:43:04

コンストラクタは、基本的にはメソッドと変わりませんが二つの特徴を持ちます
一つはクラスと同じ名前であり、クラスと同じメソッドはコンストラクタとなります
もう一つは戻り値は無いため、コンストラクタには戻り値は指定しません


797マロン:2018/12/03(月) 06:43:43
コンストラクタは必ず呼び出されるメソッドってのは>>237の3枚目にちゃんと書いてあるでよ

798マロン:2018/12/03(月) 06:45:47
クラス: 設計図
インスタンス: 設計図に基づいて、作られた製品
インスタンス化: 設計図に基づいて作っていくこと
コンストラクタ: 設計図に基づいて作るとき、最初はどういう部品を置いていくかという設定

この説明はまだむつかしい?

799マロン:2018/12/03(月) 06:47:32
忘れてるんじゃないんだ・・・
インスタンスを2個作ってるんだよ

800マロン:2018/12/03(月) 06:48:04
objっていうのはアドレスの参照であって実体ではないんだよ
ポインタ投げたマンには難しいか

801マロン:2018/12/03(月) 06:50:24
Test obj = new Test(); と
int i = 0; はほぼ同じだよ

int i;
i = 0;
と同じ様に
Test obj;
obj = new Test();
でもいいんだよ
宣言と代入を同時にする初期化が必要ではないんだよ

あと、>>778でも言ったけど
obj = new Test(); では
new Test();で作った箱の住所をobjに入れてたんだけど
obj = new Test("mew mew"); で、
また新しく作った箱の住所を、またobjに上書きする形で代入しているんだよ

802マロン:2018/12/03(月) 06:51:03
これでいいかな?箱と書いてるけど、概念だけね。
      Test obj; //箱作った。
obj = new Test(); //箱objに1個目のインスタンスをいれた。
obj = new Test("Tokyo mew mew");//箱objに2個目のインスタンスを上書きした。

803マロン:2018/12/03(月) 06:51:37
メモリの番号を指す矢印がTest型のobjっていう変数
メモリに格納されてるのがTest型のインスタンス

804マロン:2018/12/03(月) 06:52:51
戦後が書いているのはC++的名概念のせいで、ぜんぜんC#だと違うっていう悲しみ。

805マロン:2018/12/03(月) 06:53:16
とりあえずペイントで描いてみよ

806マロン:2018/12/03(月) 06:55:33
お、なんか難しそうなことやってる
そろそろ3Dゲームでミリオンセラー出せそう?

807マロン:2018/12/03(月) 06:56:02
objをオブジェクトって呼ぶのやめよう。
objを違う名前にしよ。

808マロン:2018/12/03(月) 06:58:22
で、新しいインスタンスをobjに代入したらどうなるの?

809マロン:2018/12/03(月) 06:58:50
マロンかわいそうだから相手してあげて

810マロン:2018/12/03(月) 07:01:23
はい

811マロン:2018/12/03(月) 07:02:17
絵心とは
ttps://gyazo.com/d12e3870ce21a93d0325e3b0771af7a8

812マロン:2018/12/03(月) 07:04:49
ちがうよ。
xの初期化がされてないから。
2つのコンストラクタで両方ともxに適当な文字いれて

813マロン:2018/12/03(月) 07:06:02
x = "てす";
y = "1";
にすればわかるよ。

814マロン:2018/12/03(月) 07:06:23
二回目のコンストラクタで作られたインスタンスのxには何が入ってるの?
空白?null?コンパイルエラー?

815マロン:2018/12/03(月) 07:09:14
ちょっと1個目のxを10にしてみて

816マロン:2018/12/03(月) 07:09:19
いや前にnewしたやつもメモリのどこかに残ってるはずだよ
内容を上書きしたわけじゃない 新しい領域にインスタンスを作った

817マロン:2018/12/03(月) 07:10:31
混乱させるようなこと言ったかな
とりあえず>>811を覚えて

818マロン:2018/12/03(月) 07:12:55
がんばった
ttps://gyazo.com/78245d19483fce51ab1c55c70d611607

819マロン:2018/12/03(月) 07:13:20
あるにはある
あるけど、どこからも見に行くことはできないから、本当にあるのかもわからない

C#だと自動で消してくれたりしてるけど、C/C++だと自動では消してくれないので極端に言うとPCの電源落とすまでずっと残ってる

820マロン:2018/12/03(月) 07:14:25
アプリ起動しっぱだとメモリいっぱいいっぱいになるまで消してくれなかったりするw

821マロン:2018/12/03(月) 07:14:42
objはただのインスタンスへの行先案内人だよ
イコールにしてるけど、objはインスタンスではないんだ。

822マロン:2018/12/03(月) 07:15:35
objは箱じゃなくて矢印ってのはそういうことを言いたかった

823マロン:2018/12/03(月) 07:15:55
完璧だ。それで間違いない

824マロン:2018/12/03(月) 07:17:25
メモリリークって呼ばれる現象ですね

825マロン:2018/12/03(月) 07:19:01
それが参照型ね。

826マロン:2018/12/03(月) 07:19:27
戦後はポインタも理解したも同然
ピアカスのノイマンと呼ばれる日も近い




掲示板管理者へ連絡 無料レンタル掲示板