検索結果 108 件

by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のRxにおけるダブルクリックの実装
返信数: 5
閲覧数: 1930

C++のRxにおけるダブルクリックの実装

お世話になります。 現在、「Reactive Extensions」の勉強として rxcppを使用して、ダブルクリックのイベント処理を実装しています。 実装途中で、行き詰まり質問することにしました。 ダブルクリックのイベントを定義する際に、 「時間内に2回クリックしたとき」を表現したいのですが、イマイチ実装がわかりません。 とりあえず、bufferメソッドを使用して2個ずつイベントを通知する実装としている為、 「2回クリックしたとき」しか表現できていない状態です。 ここに、制限時間を定義するにはどうしたらよいでしょうか。 可能であれば、具体的な実装例が欲しいです。 宜しくお願い致します。 下記...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: たくさんの...は何ですか
返信数: 8
閲覧数: 1215

Re: たくさんの...は何ですか

Math さんが書きました:... はコンピュータでは”たくさんの”を意味します。It's means " ... is many"(たくさんとは複数のという事です)
これは、間違っています。(少なくともC++では)
0個である可能性もある為
正しくは、「省略」を意味します。

https://cpprefjp.github.io/lang/cpp11/v ... lates.html
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: たくさんの...は何ですか
返信数: 8
閲覧数: 1215

Re: たくさんの...は何ですか

手っ取り早く、意味を知りたいのでしたら
下記のキーワードを調べると良いです。
提示されているコード中で、ラムダ式が使用されていますが
質問内容は、「...」(エリプシス)の意味なので省略します。
オフトピック
JAT さんが書きました:下記C言語文に存在する四つの「...」に意味不明です。
提示されているコードは、C++(C++14以降)のものであり、C言語ではありません。
今回の回答は、C++を前提とした回答となります。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: c++ 範囲forとイテレータについて
返信数: 3
閲覧数: 901

Re: c++ 範囲forとイテレータについて

 1.範囲forとイテレータを用いて代入ができなかった原因 auto it は、一時変数なので、代入を行っても元の配列の内容には影響しません。 (it には、vector配列の要素がコピーされているだけ)  2.このコンストラクタ内で範囲forとイテレータを用いて代入を行う場合の正しい書き方 auto& it に変更することで、要素への参照を取得できます。 配列要素への参照なので、元配列の書き換えが行われます。 範囲ベースfor (抜粋) // 範囲forとイテレータを用いて初期化. int i = 0; for (auto& it : this->noteName) { it.id = i...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語のキャストについて
返信数: 6
閲覧数: 1007

Re: C言語のキャストについて

先に、気になった点。 C言語のキャストについての質問です。 型の変換だと聞いたのですが、 int a = std::atoi("123"); 文字列から数値へ変換しています。 これをキャストと呼ぶのでしょうか? C言語(C++でもいいです)のキャストをする事によって、メモリの値が書き換わる事がありますか? という質問です。 質問内容が変わっていませんか? (これはキャストですか?→キャストしたらメモリ書き換わりますか?) [hr] C言語(C++でもいいです)のキャストをする事によって、メモリの値が書き換わる事がありますか? という質問です。 C++であれば、 変換した結果を得るために、キャス...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスにおける処理の分離
返信数: 4
閲覧数: 644

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

「テンプレートクラスにデータを保持、別のクラスに処理を書く」ということは、 //ヘッダ template<typename T> class A{ T x;//データを保持 } //ソース class B{ //どうにかしてAクラスのメンバにアクセスして処理を行う //T Add(T obj){return obj+A::x}   みたいなイメージ? } このようなイメージを私は持ってたんですけど。。。 (あくまで自分が読んだ限りの解釈ですが、) 記事の内容を見る限りだと、 「別クラス」と言っているのは、テンプレートクラスの実装の事を言っているように見えました。 A<型> の、「型」に入る内...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: [c++] テンプレートクラスにおける処理の分離
返信数: 4
閲覧数: 644

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

別のクラスはどのような構成にすればいいのでしょうか? こちらは、質問の意味がくみ取れませんでした。すいません。 (実装側のコーディング方法という意味であれば、後記のコードを参照) そして、もしよろしければ上のAクラスを実際に分離してもらえないでしょうか? こうじゃないですか? //A.cpp template<typename T> T A<T>::Add(T obj){ return x + obj; } 後、ヘッダー側のセミコロンが抜けています。 //A.h template<typename T> class A{ private: T x; public: T Add(T obj);...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語のキャストについて
返信数: 6
閲覧数: 1007

Re: C言語のキャストについて

言葉としての意味なのか、プログラム用語としてなのかで変わる気がします。

言葉の意味で考えると、変換を行うのでキャストですが、
プログラム的な意味では、タイプキャストではないので、違うと思います。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++でファイル名を取得して動画を再生したい
返信数: 10
閲覧数: 2646

Re: C++でファイル名を取得して動画を再生したい

解決方法は、既に書かれているので環境について。 VS2013環境では、該当箇所でエラーしないので環境依存の問題の様です。 開発環境は、明記した方がよさそうです。 環境:VS2013 // VS2013だと filename() はstring型 string a = p.filename(); 環境:VS2015 // VS2015だと filename() はpath型 → エラー string a = p.filename(); filesystemは、正式リリースではないので 使用する際は、仕様変更されることを考慮した方が良いです。 https://msdn.microsoft.com/...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 7093

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

結論としては、 「バッチ埋め込みのPowerShellでC#コードに任意のライブラリを使用する事はできない」 とします。 Assemblyのメンバを使用してできなくもなかったですが、 本来はコンパイル時の指定で事足りるはずなので不毛。 PowerShellのみで実装する場合は、動作しますが、 Add-TypeのC#コード中で任意のライブラリを使用/読み出すには制約があるようです。 (自作のDLL内で使用される.Netバージョンが指定できない為、環境によってエラーする) 結局、 エラー原因を含め、 Add-Type の ReferencedAssemblies で読み込みを行ったライブラリを C...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 7093

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

今現在確認できた事として、 ReferencedAssembliesで自作DLLの読み込みを行えるが、 環境によっては例外が発生する。(Windows8.1環境で、呼び出した段階で例外が発生した) dllの読み込みで、.Netのバージョンが依存となる点が問題といった感じでしょうか。 現在の方法だと問題がありそうなので方針を変更して、 C#のコードで、うまくバージョン選択して参照を追加する方法がないか調べてみます。 (私のホームページにPowerShellとC#とVBについてかなり詳しく書いたはずなのでよんでみて) http://powershell-vb-memo.nisinippon.com...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 7093

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

Math さんが書きました:それなら2つのdllを同じにして実験せよ。¥!(いまいそがしのに..)
もっともっと自分で考えろ。そうしたらもっと大きな間違いに気付くはず。①時間はかけてかんがえろ!
別に、即時に回答が欲しいわけでないので、
忙しいのであれば、レスは後でも構いません。

自分で考えて解決しなかったので、質問しているのです。

あと、もっと大きな間違えを指摘してください。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 7093

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

ReferencedAssembliesってGAC関係なくないですか?

自作の.Net向けDLLはカレントディレクトリに配置し使用できました。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 7093

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

質問文 自分が今行いたい事は何か バッチ起動のPowerShell埋め込みワンライナーを使用して Add-TypeでC#コードを使用する際し、.Net用のDXライブラリを使用したいと思います。 なぜ、ps1の形式をとっていないのかというと、セキュリティ設定が必要になったりし、 使用者側に手間がかかるためです。 batの形式に埋め込むことで、ユーザー側の手順として起動するだけで済みます。 PowerShellは、Windows7標準なので、新たにインストールする/させる必要がない為、使用しています。 (OSさえあれば、使用者の環境に依存しない) どのように取り組んだか(プログラムコードがある場...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 7093

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

>OS標準機能で、動けばCSIを使用しますが >配布とかするのに環境依存になるのは避けたいです。 >(対象はWindows7~Windows10を想定しています) 落ち着いてよく読むこと。中学生向きに書いたのだから。 このリンクですよね。 http://csi.nisinippon.com/index.html さっき目を通したときに、「VS2015」だったり「csi」の文言があったので 環境依存だと思って読んでいたのですが、間違っていたでしょうか。 とりあえず、読み進めてみます。 なをPowerShellはプログラミング言語でもありFormも簡単に作れます。 # アセンブリ読み込み #Ad...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 7093

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

>bat起動ワンライナーで、動作させることを目的としているので マウス Wクリックで大丈夫です。 OS標準機能で、動けばCSIを使用しますが 配布とかするのに環境依存になるのは避けたいです。 (対象はWindows7~Windows10を想定しています) >staticメソッド等を使用する際にオブジェクトを取得してから使うのは、微妙と感じました。 間違ってる。staticメソッドを使用する際にオブジェクトを取得してから使うのではなく[クラス名]でつかう! 大抵のグロバール関数(メソッド)はそうです。 http://csi.nisinippon.com/ps--a.png Asin,Acos・...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: 直接ウィンドウサイズを変更したい
返信数: 3
閲覧数: 643

Re: 直接ウィンドウサイズを変更したい

手元で確かめたわけじゃないので、断言できませんが、
DXライブラリの公式リファレンスにないのであれば、目的の操作はサポートされていないのでしょう。
(隠し関数的な感じで、ヘッダーに定義はあるってことも考えられますが、それこそサポートされているのか不安)

WindowsAPIを使用して、
無理やり操作を行ったところでDXライブラリの動作に影響が起こる可能性があるので(解像度とか)
DXライブラリ本家の掲示板で、直接要望を出してみるのもありかもしれません。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 7093

Re: バッチ起動のPowerShellでDLLの読み込みに失敗する

この様な”ヒアーーストリング”によるコンパイルは(C#3)は今(C#6)では無意味です。VS2015はMicrosoftさんが長年の失敗を乗り越え遂にコンパイラの一本化に成功した初のコンパイラでありcsc.exeで全てが出来るのでこのような方法を用い無くても簡単に実現できます。 私のホームページ http://csi.nisinippon.com/index.html をご覧ください。 また http://dixq.net/forum/viewtopic.php?f=3&t=18829 のようにcsc.exeによるコンパイルはVisualStudioIDEと同一に(VS2015から)なりまし...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: バッチ起動のPowerShellでDLLの読み込みに失敗する
返信数: 28
閲覧数: 7093

バッチ起動のPowerShellでDLLの読み込みに失敗する

お世話になります。 PowerShellのbat起動ワンライナーにおける、埋め込みC#コードについて ReferencedAssemblies オプションによる.Net向けDxLibライブラリ(dll)の読み込みで分からないことがあり質問しました。 バッチファイルのディレクトリに存在する「DxLibDotNet.dll」を呼び出した際に、 下記のようなエラーで、実行時にエラーしてしまいます。 ※「DxLib.dll」「DxLib_x64.dll」も同ディレクトリに配置しています。 "1" 個の引数を指定して "Run" を呼び出し中に例外が発生しました: "ファイルまたはアセンブリ 'DxLi...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 8076

Re: C++のメニュー画面

このプログラムの一部を自分流に改造して、新たなシーンを追加してもいいでしょうか? 自分が提示したコードに関しては、 特に断りなしに自由に使用してもらって構いませんが、無保証とさせていただきます。 (ゲーム部分のコードは、不知火さんの提示されたものです) 新たなシーンを追加する際は、 下記の部分に注意すればおそらく大丈夫です。 110~117行付近 シーン列挙 シーンを登録した順と対応します 164~293行付近 シーン定義 トップシーンとゲームシーンの定義となっています。 428~431行付近 シーン登録 トップシーンとゲームシーンをシーン管理に登録(追加)する処理です。 勝敗の判定が白黒逆...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 8076

Re: C++のメニュー画面

すいません自分はVisual Studioで作っているので下の方法でプロジェクトを立てて、No11さんのコードを入力したのですが、変なバグが沢山出てしまいました。 あまりにも多すぎたので画像として送ります。 pngファイルもプログラムの内部に入れましたし、きちんと入力したはずなのに明らかにおかしなバグばかり出ているので何かが足りないのでしょうか? 私の場合は Microsoft Visual Studio 2013  パソコンはWindows 8 です。 同程度の環境を作ってビルドしましたが、普通にビルド通りますね。 コンパイルエラーに関して、コード側に問題がないのは確かです。 https:...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 8076

Re: C++のメニュー画面

Visual Studioのバージョン等、環境に関して明記してください。
No10に明記してありますが、自分は、VS2013/Windows10 で動作確認しました。

あと、No11のメッセージは自分じゃないので、お答えしかねます。
(自分の提示したコードとまったく同じかまだ確認していない為)
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: UnityにファイルをD&Dした際にファイル名を取得する方法について
返信数: 1
閲覧数: 372

Re: UnityにファイルをD&Dした際にファイル名を取得する方法について

Unityについて詳しくないので、より最適な方法があるかもしれません。ご了承ください。

ゲームウィンドウに対するイベント/メッセージ処理自体を
Unity側がサポートしていない限り、
WindowsAPIを使って、実装することになると思います。

軽く調べたところ、DllImportを使用しているサンプルがあったので
(Pro限定?かもしれませんので、必要に応じて確認してください。)

実装可能と考えると
真っ先に思いつくのは、「サブクラス化」ですね。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 8076

Re: C++のメニュー画面

どのソースコードに対しての質問でしょうか?

自分が投稿したレスのコードであれば、C++ですが問題ないでしょうか?
(ついでに、シーン管理であって、メニューのソースではありません。)
使用するのであれば、C++11規格対応のコンパイラ(Viusual Studio 2013以上)が必須ですので、ご注意ください。

とりあえず、自分の提示したコードであれば、
  • 164~424行付近
    シーンの定義
  • 428~431行付近
    シーンの登録
となっているので、読み解いてわからない点があれば、
質問してください。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 8076

Re: C++のメニュー画面

コンパイルをコマンドラインでやるのであれば、
cl.exeにコマンドを入力することで
コンパイルができますが、
(参照:https://msdn.microsoft.com/ja-jp/library/f35ctcxw.aspx

Visual Studioが導入されているのであれば、プロジェクトを立てて、ビルドするだけで済みます。
(参照:http://dixq.net/g/h_01.html)

よくわからないのであれば、後者をお勧めします。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 8076

Re: C++のメニュー画面

再び質問させて頂きます。今度は上のオセロのソースをcppファイルとhファイルに分けたいのですが、どのように分ければいいですか? 自分で考えてみたのですがよく分からないのです。 よろしくお願いします。 ソース分割ですが、プロトタイプ宣言について理解しているのであれば ヘッダー(.h)にプロトタイプ宣言 ソース(.cpp)に実装 といった感じで、基本は分割すれば良いと思います。 (公開範囲を制限するのであれば対応が必要です。) 下記のスポイラーは、元コードをソース分割する例です。 注意: 初期化、更新、描画、終了 の関数を追加 各種判定が、白黒逆な気がしたので入れ替えました main.cpp #...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のメニュー画面
返信数: 51
閲覧数: 8076

Re: C++のメニュー画面

C++でも良いなら、シーン管理はこんな感じですかね ソース分割したものが必要であれば声かけてください 以下のスポイラーは似たような感じに動くように、コードを書いてみたもの 注意: ソース分割なし 適当に作成したので、ミスがあるかもしない LoadGraph等のエラーチェックなし(元のコードのまま) 環境:VS2013/Windows10 #include "DxLib.h" // DxLib #include <iostream> // cerr #include <array> // array #include <vector> // vector #include <functional...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: ■ 2017年明けましておめでとうございます 新年挨拶トピック ■ [雑談]
返信数: 7
閲覧数: 1533

Re: ■ 2017年明けましておめでとうございます 新年挨拶トピック ■ [雑談]

あけましておめでとうございます。

C言語の勉強に活用させていただいています。
これからも宜しくお願いします。
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルパスをディレクトリパスに変換
返信数: 10
閲覧数: 2322

Re: ファイルパスをディレクトリパスに変換

(質問内容と若干話題が逸れるのでオフトピックですが、) filesystemを使用する方法もあります。 起点となるファイルパスさえあれば、parent_pathメソッドでディレクトリパスは簡単に取得できます。 環境:VS2015 / Windows10 /* * ・ファイルパスをディレクトリパスに変換 //*/ #include <iostream> #include <string> #include <filesystem> int main(int argc, char **argv) { // 名前空間名省略用に宣言 namespace fsys = std::experimenta...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語での単語検索とカウントプログラム
返信数: 30
閲覧数: 4925

Re: C言語での単語検索とカウントプログラム

SH 様の提示されたコードを修正した場合 自分は、rewind()を使用しない方法がわからないので、 前に書いたコードを英文対応させてみました。 SH様のコードで使用されている関数を使用しているので 関数縛りは大丈夫かなと微修正 あまり、綺麗に書けていませんが参考になれば幸いです。 (ミスがあるかもしれませんので、ご注意ください) [理想の動作例] 以下の内容のテキストファイル、test.textがあったとする。 Seventy-one years ago, on a bright cloudless morning, death fell from the sky and the world...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語での単語検索とカウントプログラム
返信数: 30
閲覧数: 4925

Re: C言語での単語検索とカウントプログラム

ここまで多数の返信をいただきながとても重要なことを書いていませんでした。講師は課題には学習した範囲までの内容しか使ってはいけないという人で、具体的に言うと、授業で使用される「新・明解C言語(柴田望洋)」の11章までの内容で作成しなければなりません。よって、rewind() やfgetなどのファイル系の関数、構造体などは使用できません。(以前まだ習っていないstrcmpを使用し評価を下げられました。現在は学習済みです。) 大変申し訳ありません・・・。 具体的に何を使用して良いかわからなかったので 授業で使用している書籍を調べましたが、該当書籍が3種類ありました。 新・明解C言語入門編 目次 h...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語での単語検索とカウントプログラム
返信数: 30
閲覧数: 4925

Re: C言語での単語検索とカウントプログラム

オフトピック
みけCAT さんが書きました: となっており、assignment-expressionとは一番「外側」(ASTで一番根に近い所)の演算子がコンマ演算子でない式のことなので、
いずれも定数でない式が要素数として使えることがわかります。
コマンドライン引数の数は、実行時にならないとわかりません。
それを最適化で定数にしてしまうようなコンパイラは欠陥品でしょう。
解説ありがとうございます。納得しました。
単純にVCが対応していないだけなんですね。
勉強になりました。
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語での単語検索とカウントプログラム
返信数: 30
閲覧数: 4925

Re: C言語での単語検索とカウントプログラム

ミスがあるかもしれませんが とりあえず、CとC++で動くものです。 追記:(以下のプログラム、英文を考慮していませんでした。ピリオドの対応してません。) 環境:VS2013/Windows10 // Cのつもり #include <stdio.h> #include <stdlib.h> #include <string.h> #define BUFF_MAX 128 // 標準入力から単語を取得する int GetWord(char* pText) { for (int idx = 0; idx < BUFF_MAX; ++idx) { char ch = getchar(); // 単語の...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語での単語検索とカウントプログラム
返信数: 30
閲覧数: 4925

Re: C言語での単語検索とカウントプログラム

SH さんが書きました:他にもおかしな点がありますが分かる方いたら教えていただきたいです。
実行結果に直接関係ないですが、気になったので・・・

以下のコードは、おそらく環境依存です。
配列の宣言に変数を使用していますが、定数として解釈されている様です。
SH さんが書きました:

コード:

int  word_cnt[argc - 1];
Clang 3.8 / LLVM 3.8 では、コンパイルできましたが、
Visual Studio 2013 のコンパイラでは、コンパイルエラーします。
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列のポインタを他のソースファイルで書き換えたい
返信数: 13
閲覧数: 1493

Re: 二次元配列のポインタを他のソースファイルで書き換えたい

ポインタの付け替えで実現する場合は、以下の通りです。 となっており、a[0]への変更がbに反映されておらず、bへの変更がa[0]に反映されていません。 今回の検証ではGCCを使用しましたが、inemaruさんの指定するVS2013では正しく「ポインタの付け替え」が行われていますか? 【追記】 VC(2013かは不明)で検証 しましたが、同様にa[0]とbは独立しており、コピーが行われていると考えられます。 ご指摘ありがとうございます。 完全に自分の ミス でした。 VS2013で確認したところ、コピーが行われています。 付け替えは行われていません。 落ち着いて考えると、std::arrayの...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列のポインタを他のソースファイルで書き換えたい
返信数: 13
閲覧数: 1493

Re: 二次元配列のポインタを他のソースファイルで書き換えたい

申し訳ありません。 質問斜め読みして、回答が的外れになってました。 (前の回答は、スポイラーテキストにしました。) ポインタの付け替えで実現する場合は、以下の通りです。 ↑ 間違いでした。このコードの動作は、 コピー です。ご注意ください。 // 環境:VS2013 #include <cstdio> #include <array> std::array<int, 5> b = { 11, 12, 13, 14, 15 }; void setPointer(std::array<std::array<int, 5>, 2>& refA) { refA[0] = b; } void outpu...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでゲームの実行EXEとは別に設定EXEを用意したい
返信数: 15
閲覧数: 1721

Re: DxLibでゲームの実行EXEとは別に設定EXEを用意したい

設定ファイルを共有する実行ファイルがある状況について
注意したい点を一つ書くと、

フォーマットは、気を付けた方が良いかもしれません。

テキスト形式(txt, ini, xml, json等)であれば、問題は起こりにくいですが
バイナリ形式だと型の違いを意識してデータを読み書きする必要が出てきます。

windows環境であれば、バイトオーダー(エンディアン)までは気にする必要ないと思うので
別言語からバイナリを書き出す場合は、型の対応表を見ながらの対応になると思います。
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 全く訳の分からない例外がスローされてしまいました
返信数: 7
閲覧数: 948

Re: 全く訳の分からない例外がスローされてしまいました

エラー的に、「配列外アクセス」な気がしますが、
Visual Studioならウォッチ機能等を使用してデバッグするのが速いと思います。
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列のポインタを他のソースファイルで書き換えたい
返信数: 13
閲覧数: 1493

Re: 二次元配列のポインタを他のソースファイルで書き換えたい

コピーで実現する場合のソース アンセーフ版(生配列を使用する場合) // 環境:VS2013 // Visual Studio だと必要かもしれん #define _SCL_SECURE_NO_WARNINGS #include <cstdio> #include <array> int b[] = { 11, 12, 13, 14, 15 }; void setPointer(int* pA) { // 配列bのサイズは5なので bの先頭アドレス+5で終端アドレス std::copy(b, b + 5, pA); } void output(){ printf("bのアドレス = %p\n"...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列のポインタを他のソースファイルで書き換えたい
返信数: 13
閲覧数: 1493

Re: 二次元配列のポインタを他のソースファイルで書き換えたい

コピーで実現する場合のソース コピーで良いなら、std::copyを使えば安全 // 環境:VS2013 #include <cstdio> #include <array> std::array<int, 5> b = { 11, 12, 13, 14, 15 }; void setPointer(std::array<std::array<int, 5>, 2>& refA) { std::copy(b.begin(), b.end(), refA.front().begin()); } void output(){ printf("bのアドレス = %p\n", &b.front());...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C# 行数を表示したい。
返信数: 17
閲覧数: 1863

Re: C# 行数を表示したい。

Visual Studio以外にもC#のIDEはあるので、
(フォーラムルール的にも)開発環境は明記した方が良いでしょう。

UnityやMacの話だった場合、
MonoDevelopが使用されている可能性があるわけです。
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体の初期化
返信数: 5
閲覧数: 980

Re: 構造体の初期化

初期化がゼロクリアで、C++であるなら、
自分は下記のようにしています。

コード:

MyStruct data = {};
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C++の勉強方法についての質問
返信数: 7
閲覧数: 1487

Re: C++の勉強方法についての質問

しかし、Direct3D等のサンプルにしても、古いC++の文法で書かれていることがほとんどです。 だから、Direct3DかつC++11のサンプルだけをやるというようにこだわると何もできなくなります。 まるで、C++11が別言語みたいな言われようですが、 新しいC++を知ったからと言って、古いC++が理解できなくなる訳じゃないです。 「何もできなくなる」というのは大げさな上に間違っています。 C++11はC++なのですから古いコードで書かれていても、 C++11のコンパイラでコンパイルできます。 ただ、技術を勉強するときに新しいものにこだわるのは少し問題があります。 例えばDirectXにつ...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: エラーができて実行ができないプログラム
返信数: 8
閲覧数: 985

Re: エラーができて実行ができないプログラム

後はライブラリリンクだけできればよかったのに、 なぜCLAPACKに変更したのでしょうか? CLAPACKは使用経験がないので、自分では分かりかねます。 とりあえず、エラーについて 予想 で答えます。 error C2733: 'zgesv_' : オーバーロードされた関数の C リンケージの 2 回以上の宣言は許されません。 CLAPACK側に同名(zgesv_)の定義があるため、エラーしていると予想。 realがあいまい Complex から real に変換できません どこかに定義されたreal関数とstd::real関数が名前衝突したと予想。 提示されたコードで怪しいと思った点を修正し...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: エラーができて実行ができないプログラム
返信数: 8
閲覧数: 985

Re: エラーができて実行ができないプログラム

そのエラーは、「関数zgesv_の実体がない」というエラーだと思われますが Lapackライブラリのリンクが、できていないのでは? extern "C" { // Lapackライブラリの関数呼び出し用の定義 void zgesv_ ( const int& N, const int& NRHS, Complex** A, const int& LDA, int* IPIV, Complex** B, const int& LDB, int& INFO ); }; もし自前で実装するのであれば、(本末転倒) extern "C" { void zgesv_ ( const int& N, co...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: エラーができて実行ができないプログラム
返信数: 8
閲覧数: 985

Re: エラーができて実行ができないプログラム

エラーを見る限り58行目で、テンプレート引数を解決できてないだけっぽい
以下のコードで、解決しませんか?

コード:

  // info = zgesv( A, x, b );
  info = zgesv<N>( A, x, b );
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C++の勉強方法についての質問
返信数: 7
閲覧数: 1487

Re: C++の勉強方法についての質問

5. DirectXプログラミングをやりたい場合は、まずC++でDLLを読み込む方法と  COMプログラミングができないと無理だった気がする(私より詳しい人頼みます) 個人的な所感です。 C++で(基本的な)処理を書く上では、自前でDLLを読み込んだりはしません。 (VSやDirectXの実装側でやってくれている為) また、COMプログラミングに関して詳しく知っていなくても 関数の意味や3Dに関する知識があれば、普通にC++(よりC言語寄りだけども)が使える程度で どうにかなりそうだと思います。 (専用の関数を使用するため、COMプログラミングを感じさせない作りになっている) [hr] 以下...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語、構造体について
返信数: 6
閲覧数: 1405

Re: C言語、構造体について

かずま さんが書きました:

コード:

#include <stdio.h>  // 関数 printf の宣言を取り込む (定義は入っていない)
inemaru さんが書きました:

コード:

#include <stdio.h> // (関数printfの定義が入っているファイルを読み込む)
かずま様の説明と自分の説明に差があったので補足です。

確かにヘッダーには、宣言しか入っていませんが、
最終的に、定義(実装)の入っているファイルが読み込まれるようになるので
<stdio.h>には、定義が入っていないという意味です。
(printfの実装は組み込まれていることが多いですが・・・)
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 分割してよみこんだ画像(4方向に動かす)の透過ができません
返信数: 4
閲覧数: 760

Re: 分割してよみこんだ画像(4方向に動かす)の透過ができません

つまり、 「透過画像の透過部分が透過されていない」 ということでしょうか?

もしそうだとしたら、
  • 全体のコード(もしくは再現コード)
  • 使用している画像の詳細等(問題なければ)
  • DXライブラリのバージョン
  • 開発環境
程度は、提示した方がよさそうです。

最低限必要な情報が欠損した状態の質問には答えられないことが多いので
フォーラムルールの質問テンプレートの使用をお勧めします
http://dixq.net/board/board.html
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語、構造体について
返信数: 6
閲覧数: 1405

Re: C言語、構造体について

インスタンスという用語をそのソースで使うのがふさわしいのかどうか、 いささか疑問に思います。 単に「変数を定義する」くらいでいいような気がしなくもありません。 意味的には、間違っていないつもりですが、 C言語は、C++と違ってオブジェクト指向を導入していないので、 用語としては、スタンダードではないかもしれません。 (C++の構造体はクラスと同等なので、明確に区別していない限りインスタンスと呼んでも問題ない) 解説サイトで調べたところ、聞きなれないですが、 構造体のインスタンス = オブジェクト と呼ぶらしいです。 詳細は、ロベールさんの解説に丸投げします。 ・メモリ上にある変数を実体(イン...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語、構造体について
返信数: 6
閲覧数: 1405

Re: C言語、構造体について

ソースが何をやっているのか?という質問であれば、こんな感じでどうでしょうか? (用語の意味が不明瞭な場合は、検索してください) #include <stdio.h> // (関数printfの定義が入っているファイルを読み込む) // 座標X,Yを持った構造体 point の定義 typedef struct point { double cx; // 座標X double cy; // 座標Y } point; // 構造体を引数で初期化してインスタンスを返却する関数 point set_point(double x, double y) { point pt; pt.cx = x; pt....
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: TEを引数にして、JUDGEを返す
返信数: 13
閲覧数: 1413

Re: TEを引数にして、JUDGEを返す

あれ、さっきとコメント表示が違う・・・。 いえ、まだ勉強途中なので関数、引数、戻り値に関してもあまりよく理解していません。 編集と返信が入れ違いになってしまったようです。 (レスの内容にキーワードを書き加えてました。) とりあえず、検索すれば解説サイトがあるので活用してください。 最低限、「関数」について理解していないと、この課題は解けません。 以下は、関数についての参考までに // 関数を使うと // 共通化できる部分をまとめたり // 処理を分割したりできる // 戻り値のない関数 void Proc1(){ printf("Proc1"); } // 戻り値のある関数 int Proc...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: TEを引数にして、JUDGEを返す
返信数: 13
閲覧数: 1413

Re: TEを引数にして、JUDGEを返す

このプログラムができてすぐ、勝敗部分等に関数を使い、TEを引数にしてJUDGEを返す関数を作ってもらいたいと課題を頂きました。 今回教えて頂きたいのは、この<<関数を使い、TEを引数にしてJUDGEを返す関数を作ってもらいたい>というところです。 正直言って、ちょっと言っている意味がわからなかったのですが、 同じ処理を何度も書かないためにする必要があるものなのかなと思っています。 関数などのサイトや、本などを見てやっていますがいまいちどうしていいかわかりません。 漠然とした質問ですが、一体TEを引数にしてJUDGEを返すとはどういうことなのでしょうか。 単純に、<<じゃんけんの結果を返す関数...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: visual stdio エラーについて困ってます
返信数: 2
閲覧数: 526

Re: visual stdio エラーについて困ってます

プロジェクトのプロパティから
[構成プロパティ]→[C/C++]→[プリコンパイル済みヘッダー]
の[プリコンパイル済みヘッダー]が[使用]とか[作成]にもしなってたら
[プリコンパイル済みヘッダーを使用しない]に変更すると治るかもしれない

画像のみで判断なので、あまり期待しないでください。
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: [C#]先に値型の変数を返して、後から参照でその値を変更したい
返信数: 6
閲覧数: 952

Re: [C#]先に値型の変数を返して、後から参照でその値を変更したい

C#詳しくないですが、
少なくとも、どこかに result の参照を退避させないと
result にアクセスする事すらできないので変更とか無理なんじゃ・・・
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: インスタンス名.メソッド名().メソッド名()の記述の仕方
返信数: 2
閲覧数: 485

Re: インスタンス名.メソッド名().メソッド名()の記述の仕方

記述式の名称は、知りませんが 戻しているのは、「参照(参照渡し)」じゃないですか? https://www.google.com/search?&q=C%2B%2B+%E5%8F%82%E7%85%A7%E6%B8%A1%E3%81%97 #include <iostream> struct Hoge final { Hoge& MethodA(){ std::cout << "A" << std::endl; return (*this); } Hoge& MethodB(){ std::cout << "B" << std::endl; return (*this); } }; int m...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C++でシーンが変更できない
返信数: 2
閲覧数: 934

Re: C++でシーンが変更できない

軽くみた感じ、 Sceneを継承したTopで呼んでるSceneChangeのミスに見えた void Top::Update(){ if(CheckHitKey(KEY_INPUT_Z)==1){ SceneChange(Scene_Menu); // ↑ これは this->SceneChange(Scene_Menu); を呼んでるけど //  実装が空だから何も起きない // 本当は、コンストラクタで受け取ってる changer を使って //  changer->SceneChange(Scene_Menu); にしたかった? } } 以下のスポイラーは似たような感じに動くように、コード...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルに書かれた式の計算について
返信数: 12
閲覧数: 2671

Re: ファイルに書かれた式の計算について

課題の目的だけを達成するなら、 解析処理すら必要ない気がしたので書いてみました。 シェルに丸投げする方法です。 もちろん環境依存です。 Windows10・VS2013 環境で確認しました。 (パフォーマンスチューニングはしていません。) #include <iostream> // io #include <cstdlib> // system #include <fstream> // ifstream #include <vector> // vector #include <string> // string // テキスト型 typedef std::vector<std::stri...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 引数の違う親クラスの関数が使えなくなる
返信数: 6
閲覧数: 937

Re: 引数の違う親クラスの関数が使えなくなる

(using宣言以外の方法では、)型を明示すれば呼び出せます。

コード:

class Base {
public:
	int func(int a) {
		return a + 1;
	}
};

class Myclass : public Base {
public:
	int func(int a, int b) {
		return a + b;
	}
};

int main()
{
	Myclass a;
	//a.func(1); //エラー
	a.Base::func(1);
	return 0;
}
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: c++の命名規則について
返信数: 8
閲覧数: 1513

Re: c++の命名規則について

標準ライブラリの命名規則に関しては、
イマイチはっきりした情報が見つけられない(不確かな情報)なので、
あまり信用しないで
一意見として受け取ってください。

少し調べてみたところ、C++標準委員会とかで議論されてはいるみたいですが
  • ローカル変数と型名の衝突の回避
  • テンプレート引数名をテンプレートクラス内でusing宣言する事が多い為、名前衝突が起こりうる
くらいのことしかわかりませんでした。

誤解釈とかもありうるので、
間違ってたらすいません。
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 2つのヘッダに同名の構造体とクラスが…
返信数: 1
閲覧数: 498

Re: 2つのヘッダに同名の構造体とクラスが…

自分は、「Kinect」と「Oculus Rift」のどちらのSDKも使用したことが無いので 「別々のファイルにある定義が衝突するが、定義を書き換えず呼び出し元で解決したい」 と解釈して回答します、ご了承ください。 定義そのものを、名前空間に閉じ込める方法で とりあえずの解決は、できると思います。 以下、参考コードです namespace Kinect { #include "Nuisensor.h" } namespace Oculus { #include "OVR_Math.h" } int main() { // 使用するときは、スコープを使って区別する Kinect::Vector4...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 図を挿入したい
返信数: 2
閲覧数: 480

Re: 図を挿入したい

図とかファイルをエディタ上に表示する方法は知らないので、 (内容を確認できるようにする程度であれば)使えそうな方法を書いてみます。 Visual Studioのエディタはデフォルトでハイパーリンクに対応しています。 以下の方法はどうでしょうか。 「構文図やフローチャート、表など」は、任意の製図ソフト等で作成する 作成した図は、画像として保存する コード中で、図を確認するために 作成した画像のパスをコメントに書く パイパーリンクとして認識されるようにファイルパスをコメントで書いておくことで 確認したいタイミングで[Ctrl+クリック]でタブが開いて確認できると思います。 int main(voi...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題なんですが、どうしてもわからないんです。誰か教えてください!
返信数: 5
閲覧数: 871

Re: 学校の課題なんですが、どうしてもわからないんです。誰か教えてください!

とりあえず、タイピングミスじゃなさそうな部分で問題になりそうな点を上げてみます。 変数 min が比較に使用しているのに初期化されていない sum / s の部分は、整数で計算されてしまう 0除算が発生する(変数 s を平均計算前にデクリメントしている為) [hr] 以下、修正したコードです。 できるだけ、元ソースを意識して簡単にしてあります。 (開発環境が明記されていないので、環境によっては動かないかもしれないです。) #if _MSC_VER #define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <climits> #else...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: c++の命名規則について
返信数: 8
閲覧数: 1513

Re: c++の命名規則について

自分が普段使っている命名ルールは、「Google C++スタイルガイド」です。 https://google.github.io/styleguide/cppguide.html 公式ページは英語ですが、検索すると有志の方が日本語に翻訳したものが見つかると思います。 「Google C++スタイルガイド」で、クラス名(型名)は、 大文字で始めて、単語の頭文字を大文字にして、アンダーバーを使わないようにする。 となっているので、パスカル記法を使っています。 個人的に可読性は良いと感じています。 標準ライブラリの命名規則について未確認かつ不確かな情報ですが、 「C++標準ライブラリは、既存のライブ...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: ライブラリについて
返信数: 6
閲覧数: 1416

Re: ライブラリについて

C言語でなくて、C++を使用していますが、 論点はそこになさそうなので、回答してみます。 [hr] 前提として、 現場で働いている人は、成果物を提出する事が仕事です。 つまり、 納期までに成果物が完成することが必須条件で、 個人の技量や知識は二の次です。 それを踏まえて、 ライブラリの件について書くと 品質 開発効率 人件費 を両立させるために、 標準か外製かなんて関係なく普通に使用されてます。 使用するための条件はありますが、 大体はライブラリのライセンス絡みです。 (ライセンスによっては、製品をオープンソースにしないといけなくなったりする為) 特に、例に挙げられているような、 グラフィック...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 同一アドレスが、異なる値を指している?
返信数: 2
閲覧数: 759

Re: 同一アドレスが、異なる値を指している?

返答ありがとうございます。
挙動について、納得できました。

今回の状況は、
dataの初期化値が定数になっていることが、原因だったようです。

逆に、dataの初期化値を変数にすると
アドレスから値を取得するので、
const変数でも書き換えできてしまうことがわかりました。

コード:

// 元になるconst変数
const int data = rand();
また、アセンブリで実際の動作を確認することを覚えました。

特に、Compiler Explorer に関して良Webツールを
知ることができて良かったです。

ありがとうございました。
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 同一アドレスが、異なる値を指している?
返信数: 2
閲覧数: 759

同一アドレスが、異なる値を指している?

お世話になります。 C++における、const変数の挙動について解せない事があったので質問しました。 アドレスの値を変数に格納後、 格納した変数を使用してアドレスの指す変数を書き換えるといった方法で const なデータの書き換えを行った際、 同一のアドレスが指す内容が変化する動作についてです。 プログラム中で、変数がどのようになっているのか分からず困っています。 書き換えられたデータは、どのように元の数値を保っているのでしょうか? (ソースコード中では、dataが書き換え後も120として扱われている挙動) constなデータの書き換えが目的ではないので、 const装飾子は、本来書き換えられ...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 抽象クラス1の子クラス抽象クラス2の子クラスの関数
返信数: 10
閲覧数: 1038

Re: 抽象クラス1の子クラス抽象クラス2の子クラスの関数

ゲームプログラミングにおいては、 共通で扱える関数があるものを抽象化するのが効率的です。 特に、パフォーマンス的な観点からdynamic_castを行うようなことは避けるべきです。 ツール開発や、データ解析において Object型(共通型)に格納後、ダウンキャスト(dynamic_cast)する手法は使用されるので (シリアライズ/デシリアライズ、データパーサーでは使用される) あくまでも、ゲーム開発では避けるべきといった意味です。 なので、今回の場合は、 更新処理といった、 ゲームオブジェクトに共通する基底クラスを作るのが良いと思います。 ・初期化 ・終了処理 ・計算 ・更新 は、ゲームオブ...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 抽象クラス1の子クラス抽象クラス2の子クラスの関数
返信数: 10
閲覧数: 1038

Re: 抽象クラス1の子クラス抽象クラス2の子クラスの関数

「何をしようとしてそのような実装にするのか」は 今回は気にせずに回答しています。 (Any型やObject型の類でオブジェクト指向としては破綻していない為) 目的によって、それが適した方法なのかという論点では hideさんの言う通りで、完全に外視状態です。 なので、 以下に、考え方を書きます。 「物」を継承した「生き物」 「生き物」を継承した「人」 「物」は「人」か? と考えたとき、 「物」:One 「生き物」:Two 「人」:Three でマップできる気がします。 「物」にない機能を「人」が持っている状況で 「物」を使って「人」の機能を使用することを許可するのか? 許可するのであれば、 ・何...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 抽象クラス1の子クラス抽象クラス2の子クラスの関数
返信数: 10
閲覧数: 1038

Re: 抽象クラス1の子クラス抽象クラス2の子クラスの関数

こんな感じでどうですか? ThreeをOneに代入するには OneにBを呼び出すための定義が必要です。 コンパイルエラーする場合は、override キーワードを削除してください ・抽象クラスを使用する場合 #include <iostream> struct One { virtual ~One(){}; virtual void A(){}; virtual void B(){}; // 定義が必要 }; struct Two : public One { virtual void B() override { std::cout << "Two::B" << std::endl; } }...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: Visual C++ 2008 → Visual Studio Community 2015
返信数: 2
閲覧数: 891

Re: Visual C++ 2008 → Visual Studio Community 2015

まず、質問で違和感を感じた部分を書きます。 設計をする上でVisual C++ にはなくてVS2015にある機能などはありますでしょうか?またその機能は便利(重要)でしょうか? ”Visual C++ にはなくてVS2015にある機能”というのは質問の本意と異なっているのではないでしょうか。 Visual Studio 2015 で使用される C++ の開発環境は、Visual C++ です。 まず前提として、Visual Studio は統合開発環境です。 Visual Studio の中に各プログラム言語で開発するためのツールセットがあり そのうち C++言語 を開発するためのツールセット...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 添削お願いいたします
返信数: 7
閲覧数: 1716

Re: 添削お願いいたします

静的配列(インスタンス)の引数付きのコンストラクタの呼び方が分からなかったのと、 C++11の基礎サンプルに、 静的配列の初期化で引数付きのコンストラクタを呼び出す方法を織り交ぜました。 VS2015を使用するのであれば、知っておいた方が良いかと思いサンプルを作ってみました。 C++11のコードがコンパイルできる環境でコンパイルしてください。 // C++11 サンプル #include <iostream> #include <array> // 基底クラス struct BaseObject { // コンストラクタ BaseObject(){} // デストラクタ virtual ~B...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 添削お願いいたします
返信数: 7
閲覧数: 1716

Re: 添削お願いいたします

DrawTitle.cppは不要と判断しました。

ソースコードのやりとりを考慮して、
開発環境の情報を書いた方が良いと思います。

一応共有の情報として
 文字セット :マルチ バイト
 IDE :VisualStudio 2013
の環境でビルドできました。

失礼しました、プロジェクトデータが含まれていたので判断できますね。

軽くチェックしましたが”メモリリークしています”
メモリリークするプログラムは、PCのメモリを圧迫するので注意した方が良いです。
new など動的に確保したメモリの開放を忘れていませんか?
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 引数を定数に
返信数: 8
閲覧数: 1056

Re: 引数を定数に

Borland C++ 5.5.1(BCCDevoperのコンパイラ)は 結構古いので2000年以降に制定された規約は判断できないみたいです。 前回貼ったコードは、 C++11(2011年に標準化)に対応しているコンパイラが必須ですので コンパイルエラーするのはコンパイラの問題です。 同じ環境を再現するのが、手間だったので とりあえず、古い規約を調べつつサンプルコードを 書き換えてみました。 STL自体がC++で実装されているので 以下のコードは、古い規約で書いたC言語風C++コードです。 コンパイル可能か確認できてないので、 動けばラッキーくらいの気分でお願いします。 // main.cpp...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: 引数を定数に
返信数: 8
閲覧数: 1056

Re: 引数を定数に

C++(C++11)ですが、実装例です。 あまり綺麗に書けていませんがご了承ください。 Windows10 VS2013(マルチバイト文字)環境で作成しました。 標準ライブラリSTL(std)のvectorとstringを使用すれば 割と楽に解決できると思われます。 開発環境が違うのでコピペで動かない可能性あります。 #include "DxLib.h" #include <iostream> #include <vector> #include <string> // DXライブラリ簡易ラップクラス class DxLibApp final { public: // コンストラクタ DxLi...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C++仮想関数のコンパイルエラー
返信数: 4
閲覧数: 1086

Re: C++仮想関数のコンパイルエラー

前提知識が間違っている可能性があるので2点確認です。 ・継承の種類について(現在のコードでprivate継承しているのは意図的なのか) ・virtual関数はオーバーライドするために必要 この前提が間違っていると回答ができません。 以下、すべてこちらの予想で回答するので 質問内容とずれた回答をするかもしれません。 ご了承ください。 【private継承が意図的だった場合の回答】 private継承したスーパークラスのメソッドを 継承先でpublicとして公開するにはオーバーライドが必須になります。 アクセス装飾子を変更するためにプロトタイプ宣言が必須になるので、 実装を書く必要があります。 #...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: C++の高速Getter?を継承関係のあるクラスでも使いたい
返信数: 2
閲覧数: 1005

Re: C++の高速Getter?を継承関係のあるクラスでも使いたい

アクセサを作るくらいしか無いとした理由は質問内容を条件を含めて 同じデータを指す[value]と[read]をそれぞれ使用するクラスでprotectedとpublicにしたい と解釈したためです。 分かりづらい質問文でしたが、 非常に適切な解釈をしていただき助かりました。 (正直、2週間ほど回答が無かったので、質問を消してもらって他の質問サイトに投稿しようかと思っていました。) 回答していただいた通り、C++では不可能なようです。 一応、自前で無理やり解決させたコードがあるので載せておきます。 キャストする方法なので安全面で不安がありました。 // 高速Getter?テンプレートクラス te...
by inemaru
3年前
フォーラム: C言語何でも質問掲示板
トピック: クラスの宣言に代入演算子
返信数: 2
閲覧数: 488

Re: クラスの宣言に代入演算子

少なくとも、上記のコードはC++の標準構文でないので
VC++(VS2013)とclang3.6ではコンパイルできません。

パッと見、ヘルプの誤植だと思うので、

コード:

class Derived : public Base {
 Derived():Base(1) {}
}
と書いて継承を表現したかっただけだと思われます。

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