検索結果 235 件

by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体(structure)のプログラムについて。
返信数: 27
閲覧数: 1434

Re: 構造体(structure)のプログラムについて。

func(a,b,c,/*何個でも引数をとれる*/);ってことですかね?
一応できると思いますよ。
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体(structure)のプログラムについて。
返信数: 27
閲覧数: 1434

Re: 構造体(structure)のプログラムについて。

あ、もしかして構造体に四則演算の結果を入れたいんですかね?
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体(structure)のプログラムについて。
返信数: 27
閲覧数: 1434

Re: 構造体(structure)のプログラムについて。

なにも難しいことはありません。
落ち着いて考えればわかるはずです。

aとbを引数にとってa+bやa-bをreturnします。
余りは出ないから整数の値を一つ返すだけの関数ができると思います。
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクトの動的確保
返信数: 15
閲覧数: 1177

Re: オブジェクトの動的確保

CGameControlの宣言をしているファイルで、CBlockの宣言をしているファイルをincludeしていますか? 思い当たる原因はそれぐらいしかないですorz さんざんポインタの話しといてアレですけどvector<CBlock>で万事解決ではないかと、、、^^; CGAmeControlがdeleteされたら中身も消えます。 class MyClass { int x; vector<CBlock> bic; }; このクラスが使われなくなったらxの値はなくなりますよね? それと同じ感覚でbicも消えます。 たぶん動的確保=new&deleteにとらわれすぎているのではないでしょうか? ...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクトの動的確保
返信数: 15
閲覧数: 1177

Re: オブジェクトの動的確保

今回の話はvectorを使えば解決だと思うんですが、、、 気になったところを少し挙げます。 [hr] CGameControlにvector<CBlock> *bicがありますよね? で、CGameControl::Init()でblc = new CBlock(Set_X , Set_Y );という式があるんですが、おそらくこれは間違いです。 vector<CBlock> *bicというのは、CBlock型のデータを格納する配列、、、のポインタです。 もし、new CBlock(Set_X , Set_Y );のように書きたいのなら、 vector<CBlock*> bicとするべきだと思い...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタと配列
返信数: 7
閲覧数: 694

Re: ポインタと配列

バッチグーだと思います^^
すごいどうでもいい私ルールですが、配列を引数に渡すときは関数の引数も配列にしておくと見やすいかも?

void gpUpdateKey(int *Key) -> void gpUpdateKey(int Key[])

お疲れさまでした^^
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタと配列
返信数: 7
閲覧数: 694

Re: ポインタと配列

ネタバレすると、main文で呼んでるgpUpdateKey(&Key[256]);が悪いんじゃないかなぁ、と思います。
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++]PImplイディオムのcppファイル分割
返信数: 4
閲覧数: 532

Re: [c++]PImplイディオムのcppファイル分割

なるほどですね。
ライブラリの作り方は最近覚えたばっかだったので丁度よかったです。

これで完全解決です^^
ありがとうございました。
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: ライントレースロボットのセンサーを白黒反転させるプログラムの作成について
返信数: 7
閲覧数: 1275

Re: ライントレースロボットのセンサーを白黒反転させるプログラムの作成について

残念です。;_;

mplabをお使いならデバッグ機能がついてたと思うんですけど(思っただけかもしれない)
デバッグはしてみましたか?

プログラム上では正しく動いているのに出力電圧が足りなくて正しく動作しないということがあります。
(特に出力ピンが多いときとか)

コード事態が間違ってる可能性もあります。
ぜひデバッグしてみてください。
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタと配列
返信数: 7
閲覧数: 694

Re: ポインタと配列

あと、main文で呼んでいるUpdateKeyですが引数がすごいことになっています^^; ポインタはとっつきにくいですが、イメージさえできれば何とかなります。 ポインタとはデータが格納されている場所(メモリのアドレス)を示します。 配列とはデータを連続して格納したものです。 たとえば int x=1; int y=2; と宣言するとデータは 1,空白,空白,2 のようにバラバラに格納されます。 しかし、 int z[2]={1,2}; と宣言するとデータは 1,2,空白,空白 のように連続して格納されます。 だからz[0]というのはzの1番目のデータを指し示します。(cだと0から数字を数え始め...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタと配列
返信数: 7
閲覧数: 694

Re: ポインタと配列

こんにちは。

パッとコードを見て一番最初にうん?となったのがKey.cppのstatic関数です。

static変数は知ってるけどstatic関数は初めて見たぞ?
ということで調べたところ、static関数はそのソースファイル(今回はKey.cpp)の中でのみ使える関数という意味らしいです。

つまり、
Key.cppでUpdateKeyを定義(staticで)したけどmainから呼び出せるUpdateKeyは定義されてないよ!
というエラーではないでしょうか。
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++]PImplイディオムのcppファイル分割
返信数: 4
閲覧数: 532

Re: [c++]PImplイディオムのcppファイル分割

usaoさん なぜこんな単純な方法に気づかなかったのか^^; おかげで解決です! 、、、と言いたいところなんですが、ヘッダでクラスの宣言をするということは //Impl.h #include"Aho.h" #include"MyClass.h" class MyClass::Impl { public: Aho aho; void func_aho(); }; ということですよね? これではImpl.hをインクルードしてMyClass::Impl::とかけばインテリジェンス君がメンバを見せてくれます。(もちろんアクセスはできない。) これは隠ぺい出来てるといえるのでしょうか? ちなみに、今回の...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++]PImplイディオムのcppファイル分割
返信数: 4
閲覧数: 532

[c++]PImplイディオムのcppファイル分割

おはようございます。今日はPImpleイディオムについて質問があります。 このようなクラスを考えます。 class Aho { public: int x; }; class MyClass { private: Aho aho; public: int funcA(){return aho.x+1;} int funcB(){return aho.x+2;} }; このクラスをヘッダとソースファイルに分割して、 //------------Aho.h class Aho { public: int x; }; //--------------------MyClass.h #include"...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: ライントレースロボットのセンサーを白黒反転させるプログラムの作成について
返信数: 7
閲覧数: 1275

Re: ライントレースロボットのセンサーを白黒反転させるプログラムの作成について

割り込み処理は習いましたか?

今回は習ってない前提で話を進めます。(割り込みに使っていいピンをおぼえてないからです^^;

PICを使ってプログラムを動かす場合は基本的にメインとなるループの中に処理を書き込んでいきます。

コード:

int main(void)
{
    while(1)//メインループ
    {
        //処理
    }
    return 0;
}
このメインループの中でflagを更新しましょう。
私が考えるコードをすべて示すのは(間違ってるかもしんないし^^;)あまりよろしくないと思いますが、それでもいいというのならコードを挙げたいと思います。
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスに対するstd::hashの特殊化
返信数: 14
閲覧数: 2051

Re: [c++] テンプレートクラスに対するstd::hashの特殊化

sleepさん
大変丁寧なご回答ありがとうございます。おかげでまた一つテンプレートに対する知識が増えました^^
C言語の山場がポインタだとしたらC++の山場はテンプレートですね^^;
constexprとtemplateをつかいこなせるようになれば「脱☆C++初心者」といったところでしょうか^^;

tk-xleaderさん
現在の環境では問題なく動いていますし、
プログラムがある程度完成してからちまちま修正していこうと思います。
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスに対するstd::hashの特殊化
返信数: 14
閲覧数: 2051

Re: [c++] テンプレートクラスに対するstd::hashの特殊化

Mathさん
なるほど、C#だと若干違うのですね。
C#はほとんど何も勉強していないのでよくわからないのですが、
classをnewを使ってインスタンスするっていうことは知ってます(どやぁ

。。。知ってる言葉を適当に並べただけです^^;

windowsフォームがc++に比べて作りやすいと聞いたことがあるのでいつかは手を出してみたい言語のひとつです^^
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスに対するstd::hashの特殊化
返信数: 14
閲覧数: 2051

Re: [c++] テンプレートクラスに対するstd::hashの特殊化

おお!なんかガチ勢の方がたくさん来てくださってて恐縮です^^; Mathさん classを使わずにstructを使うのは元のstd::hashがstructだからです。 classもstructも処理速度は変わらない(と思う)ので、まあどっちでもいいかな~、と^^; 僕は[struct=publicメンバしか持たないclass]という認識だったのですが、もし違うようでしたらご教授ください。<(_ _)> tk-xleaderさん typenameをつければよかったんですね。早速実装してみます! と思いきや、、、sleepさんはtypenameつけてもerrorが出るとおっしゃっていますね^^;...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスに対するstd::hashの特殊化
返信数: 14
閲覧数: 2051

Re: [c++] テンプレートクラスに対するstd::hashの特殊化

Mathさん お早い回答ありがとうございます。 いただいた回答は私の想像していたものと少し違いましたがおかげでいいアイデアが浮かびました。^^ tk-xleaderさん 回答ありがとうございます。 おかげで何とか解決できたと思います。 私が実際に書いていたコードなんですが、 template<typename S,typename A> class QLClass { public: using SA=std::pair<S,A>; using Q=double; protected: google::sparse_hash_map<SA,Q,hash<SA>,eqstr> q_table; ...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: ライントレースロボットのセンサーを白黒反転させるプログラムの作成について
返信数: 7
閲覧数: 1275

Re: ライントレースロボットのセンサーを白黒反転させるプログラムの作成について

みけCATさんへ

すっかり見落としてました^^;
ですがおそらくif(flag=1)はタイプミスで本来はif(flag==1)だと思います。
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: ライントレースロボットのセンサーを白黒反転させるプログラムの作成について
返信数: 7
閲覧数: 1275

Re: ライントレースロボットのセンサーを白黒反転させるプログラムの作成について

こんにちは、pic初心者です。 初心者なので話半分に聞いてください^^; おそらくmainの最初のwhileで反転するかどうかの判定をしていると思うのですが、、、 mainの次のwhileが無限ループとなっています。flagの更新式も見当たりませんでした。 これではflagの意味があんまりないんじゃないでしょうか? 本筋とはそれますが、プログラム中に似たようなコードがいくつか見られます。(if文の判定式など 関数化するとコードが見やすくなりますし、容量も減らせます。 コード一行につき1usの処理時間がかかるとかかからないとか・・・ あと、白黒を判定するための変数B,Wですが、外側、線といった変...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスに対するstd::hashの特殊化
返信数: 14
閲覧数: 2051

[c++] テンプレートクラスに対するstd::hashの特殊化

お世話になっております。 今回はhashの特殊化方法について質問があります。 例えば自作クラスに対してhashを特殊化する場合は class MyClass//自作クラス { public: int x; }; template<> struct std::hash<MyClass> { size_t operator()(const MyClass &obj) { rerturn obj.x; } }; このように特殊化できると思います。 ここで自作クラスがテンプレートクラスだった場合はどのように書けばよいのでしょうか? 特に自作クラスが2つ以上の型を扱う場合について教えてもらいたいです。 ...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [VS2015] ソリューション内の他プロジェクトのファイルが未解決
返信数: 1
閲覧数: 336

Re: [VS2015] ソリューション内の他プロジェクトのファイルが未解決

すみません、自己解決しました^^; 今後忘れないようにここにメモ書きさせてください。 読み込むプロジェクト:A 読み込まれるプロジェクト:B とします。 Bのプロパティを開く。 [構成プロパティ]->[全般]の[構成の種類]をスタチックライブラリ(.lib)に変更する。 [Debug]モードでメニューバーの[ビルド]から[コンパイル]を選択する。 成功するとソリューションのDebugフォルダにB.libができる。 [Release]モードで[3]をするとReleaseフォルダにもB.libができる。 Aのプロパティを開く。 左上の構成を[Debug]にする。 [リンカー]->[入力]の[追加の...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [VS2015] ソリューション内の他プロジェクトのファイルが未解決
返信数: 1
閲覧数: 336

[VS2015] ソリューション内の他プロジェクトのファイルが未解決

こんばんは 質問内容は ソリューション内の他プロジェクトにあるクラスを使おうとしたら未解決の外部シンボルと言われました。 どうすればいいんでしょう? というものです。 詳しく状況の説明をすると、 私はオセロのプログラムを組んでいました。 プログラムは大きく分けて オセロの処理 DxLibを用いた画面描画処理 のようになりました。 ここで、プロジェクトを分割すればプログラムの管理が楽になると思いついたわけです。 プロジェクトをオセロの処理と画面描画処理に分割します。 コンソールでオセロを動くようにします。 ・・・動いたー!(・∀・) あとはこれを画面描画処理をするプロジェクトで呼び出せば万事解決...
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスにおける処理の分離
返信数: 4
閲覧数: 580

Re: [c++] テンプレートクラスにおける処理の分離

なるほど、、、

私の読解力が足りなかったようです。(’・_・


ありがとうございました!
これで解決ということにします。
by purin52002
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスにおける処理の分離
返信数: 4
閲覧数: 580

Re: [c++] テンプレートクラスにおける処理の分離

inemaruさん、ご指摘ありがとうございます。 ちょっと適当に書きすぎました^^; 改めてAクラスを書き直します。 //A.h template<typename T> class A{ private: T x; public: A(); T Add(T obj); } //A.cpp #include"A.h" template<typename T> A<T>::A():x(0){} template<typename T> T A<T>::Add(T obj){return x+obj;} こんな感じでどうでしょうか?^^; つまりAクラスは x->0、 Add(obj)->x+ob...

詳細検索ページへ移動する