18次元ポケットを持つ男

このエントリーをはてなブックマークに追加
1
今日、水戸線の電車(友部駅から乗った)ら、18次元ポケットを
持つ乗客が乗っていました。
もう、そりゃビックリ!!



2132人目の素数さん:02/09/14 17:51
2ゲトー
3132人目の素数さん:02/09/14 21:43
>>1( ´_ゝ`)フーン
4132人目の素数さん:02/09/14 21:43
>>1( ´_ゝ`)フーン
5132人目の素数さん:02/09/14 21:48
JR只見線でも目撃しますた。
2度ビックリ!!
6132人目の素数さん:02/09/14 21:52
俺は君たちが嫌いです
7132人目の素数さん:02/09/15 11:55
18次元の定義を知らない自分は逝ってよしですか?
8132人目の素数さん:02/09/15 12:31
>>1( ´_ゝ`)フーン
9132人目の素数さん:02/09/15 13:03
17次元チャンネルを僕に一つわけてください。
10132人目の素数さん:02/09/15 17:13
>>1( ´_ゝ`)フーン
11132人目の素数さん:02/09/15 19:26
>水戸線の電車(友部駅から乗った)ら

カッコを使った意味がない
今日、18次元ポケットスレの>>1(数学板を覗いた)ら、
>>1の厨房なカキコがありました。
もう、そりゃマターソ!!
13132人目の素数さん:02/09/17 23:17
ごめん。俺だった。
14132人目の素数さん:02/09/24 16:20
>>13
俺も。
1513:02/09/25 15:52
もうなんかややこしくて。パラメータ18個もあるし。
入れても中で移動するし。いつもどうやって整理してるよ?>>14
1614:02/09/29 13:14
>>15
構造体(を使った)ら、結構便利だよ?

struct Pocket18D{
  int param01d;
  int param02d;
  int param03d;
  int param04d;
  int param05d;
  int param06d;
  int param07d;
  int param08d;
  int param09d;
  int param10d;
  int param11d;
  int param12d;
  int param13d;
  int param14d;
  int param15d;
  int param16d;
  int param17d;
  int param18d;
};
17132人目の素数さん:02/10/09 03:38
>>15
3次元づつわけるのがポイントだ
18132人目の素数さん:02/10/09 03:46
18次元ポ(ケットを持)つ男
>>16
そんなもん配列で十分だろ!
20132人目の素数さん:02/10/19 22:55
#include <iostream>
using namespace std;

class Pocket18D{
  int d[18];
  char owner[40];
public :
  Pocket18D(){sprintf(owner , "");}
  Pocket18D(char name){sprintf(owner , "%s" , name);}
  void open();
  void close();
  void use();
};


21132人目の素数さん:02/10/19 22:55
// 18次元ポケットのオープン。
void Pocket18D::open(){
  cout << owner << "の18次元ポケットをオープンしました。\n";
  // ...
}

// 18次元ポケットのクローズ。
void Pocket18D::close(){
  // ...
  cout << owner << "の18次元ポケットをクローズしました。\n";
}

// 18次元ポケットを使用する。
void Pocket18D::use(){
  cout << owner << "の18次元ポケットを使用しました。\n";
  // ...
}

void main(){
  Pokcet18D p("Monar");
  p.open();
  p.use();
  p.close();
}
22132人目の素数さん:02/10/19 22:57
>>20-21
Error
 sprintf : 未解決なシンボルです。
Warning :
 Pocket18D::d はアクセスされません。最適化により削除されました。
>1は糞だが、まあなんか面白いネタを提供しようとする心意気は認める。

で、なんでそれが18次元と知覚できたのかね?
25132人目の素数さん:02/10/21 06:22
>>20-21
これは
  char owner[40];
こうして、
enum { OWNER_SIZE = 39 }
char owner[OWNER_SIZE + 1];
これを
  Pocket18D(char name){sprintf(owner , "%s" , name);}
こうせんとな。
  Pocket18D(const char* name)
{ sprintf(owner, "%*s", OWNER_SIZE, name); }

これは
  Pocket18D(){sprintf(owner , "");}
これで十分。
  Pocket18D(){ owner[0] = '\0'; }

あとは
int& operator(int i){ return d[i]; }
int operator(int i) const { return d[i]; }
を追加だな。
2625:02/10/21 06:30
[] が抜けてた。
  int& operator[](int i){ return d[i]; }
  int operator[](int i) const { return d[i]; }
セミコロンも抜けておるな‥

ところで、
int& operator[](int i)

int operator[](int i) const
を、両方定義する理由は何?
前者だけで用は足りると思うけど‥
最適化とかに関係あるのかな?
28132人目の素数さん:02/10/22 19:36
C++マニ歓迎age
29132人目の素数さん:02/10/22 22:53
>>27
25ではないが
子や孫のclassでconstなメンバ関数中からd[]を参照できるように
という気遣いではないの?
このクラスを再利用しないなら特には必要ないと思われ
30132人目の素数さん:02/10/22 22:59
コンパイラが勝手にやってくれる最適化以上のことを気にする奴がC++なんか使うか?









と、板違いのしょぼい燃料投下テスト
使うよ。
ゴリゴリの最適化はピンスポットでやるから。
3225:02/10/23 00:43
>>27
enum のとこのセミコロンですな。
指摘感謝。

これは、普通のオブジェクトだと非 const メンバ関数が呼ばれ、
const オブジェクトだと const メンバ関数が呼ばれます。
普通のオブジェクトの場合は
代入できてもいいので戻り値を参照にしますが、
const オブジェクトの場合は
代入できては困るので戻り値を値にします。
const オブジェクト操作の基本です。

例)
void foo(const Pocket18D& pocket)
{
cout << "0: " << pocket[0] << endl; // Ok
pocket[0] = 1; // Compile error!
}

void bar(Pocket18D& pocket)
{
cout << "0: " << pocket[0] << endl; // Ok
pocket[0] = 1; // Ok
}
33132人目の素数さん:02/10/23 00:43
age とこう。
結局このスレって、糞だよな。
35132人目の素数さん:02/10/26 09:17
>>34
オマエもね。
36132人目の素数さん:02/10/26 09:17
>>34
まあ、そりゃ18次元ポケットだからね。
37132人目の素数さん:02/10/27 07:53
>>30
なんてこと言い出すのは、最適化という言葉を覚えたてで、よくわかってないヤシ。

とか板違いで煽ってみる。
39132人目の素数さん:02/11/08 22:18
>>1-1000
揚げ。
18次元の定義はこれが一番正しいと思う。

http://curry.2ch.net/test/read.cgi/occult/1031744940/66