Learn up-to-date, idiomatic C++ with code examples, concise explanations, cheat sheets and infographics. -- Lerne aktuelles, idiomatisches C++ mit Code-Beispielen, knappen Erklärungen und Infografiken. -- 学现代的C++ // 代码示例,简洁的说明和图表
![Learn Contemporary C++ | Concise&Visual Examples](https://cdn-ak-scissors.b.st-hatena.com/image/square/f90a50f7746c6201ef7c3412a36b46d1788f9032/height=288;version=1;width=512/https%3A%2F%2Fhackingcpp.com%2Findex_card.png)
この記事について C++未経験者が一年間かけてC++を勉強した軌跡と学んだことを紹介します。 C++は参考書に書いていない様々な落とし穴があります。初心者の方はこの記事を参考にすることで、知らずにバグを埋め込んでしまうことを防ぎましょう。 C++を勉強する前提 元々のプログラミング歴 筆者はC++を勉強する前は次のような少しのプログラミング経験がありました。C++を勉強することによりプログラミングの基礎が身につき今ではRuby,Pythonなどモダンな言語もすぐに身に着けることができました。 大学の教養の授業で教養にてCでハローワールドと入出力を勉強 1ヶ月のJavaプログラミング研修 C#開発半年 本記事で参考とする規格 初心者C++erを対象とした記事ですのでC++の規格(バージョン)を解説します。C++の規格は下記の様に複数あります。 C++98(C++03) C++11 C++14
(注:2017/10/25、いただいたフィードバックを元に翻訳を修正いたしました。修正内容については、 こちら を参照ください。) 私は新しいC++11のスマートポインタをとても気に入っています。自分でメモリを管理するのが嫌だと感じる多くの仲間たちにとって、これはいろいろな面で天の助けでした。私の場合、このおかげで新人にC++を教えるのがずっと楽になりました。 しかし、C++11のスマートポインタを幅広く使っていた2年ちょっとの間で、使い方を誤ると、プログラムの効率が落ちたりクラッシュして壊れたりするという事態に何度も遭遇しました。参照用に、以下に例を載せました。 まずはこれらの”過ち”を、簡単なAircraftクラスを例に取って見てみましょう。 class Aircraft { private: string m_model; public: int m_flyCount; weak_p
1999年にネット上に現れた、C++の作者、ビャーネ・ストロヴストルップのインタビュー記事と称するものがある。まあネット上の怪文書の類といっていいかと思う。 Bjarne Stroustrup インタビュー (?) ようするに、C++という言語は、ただいたずらに難しく、プログラマを混乱させ、ソフトウェアを鈍重に巨大化させるものであり、ストロヴストルップはそれを狙って設計したというもの。なぜそんなことをしたかといえば、プログラミングが簡単になった結果、プログラマの給料は下がってしまったから、誰も使えない難しい言語を作ったのだという話。もちろんこれはストロヴストルップ本人のインタビューではありえなくて、誰かのネタであるのだが、実際C++はちゃんと学習しようとすると嫌になる複雑さを持っているので、C++に挫折し続けている僕のような人間には「全く納得だ」と思えてしまうところがたちが悪いのだ。 この
先日Ohotech 特盛 #10で話した、「C++のSTLのコンテナ型を概観する」の内容を単独記事としてまとめたものです。 追記(2019.02.02) 本記事から大幅加筆し動画講座化したものを公開しました。 C++ STLのコンテナ型を動作効率を考えて使いこなす! | Udemy 有料ですが、一部の節は無料で視聴可能です。 2月いっぱいまでは、上記のリンクから辿っていただけると有効のキャンペーン価格になります。なお、もしキャンペーン価格(¥3600→¥1200)が表示されていない場合はお問い合わせください(offkaiあっとまーくhhiro.net)。 追記(2014.10.22) 10月18日の札幌C++勉強会にて、この記事のダイジェスト版を発表しました。 なぜこの記事のような考え方が必要なのか、という紹介です。 STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7
第 5 章 例外処理 本章では、Sun C++ コンパイラに現在実装されている例外処理、および C++ 国際規格の規定について説明します。 例外処理に関する追加情報については、『注解 C++ リファレンス・マニュアル』(Margaret A. Ellis、Bjarne Stroustrup 共著、トッパン刊) を参照してください。 例外処理とは 例外とは、プログラムの通常の流れの中で発生し、プログラムの継続を阻止する変則性のことです。これらの変則性 (ユーザーエラー、論理エラーまたはシステムエラー) は、関数で検出できます。変則性を検出した関数がその変則性に対処できない場合は、例外を送出し、例外を処理する関数がそれを捕獲します。 C++ では、例外が送出されたときには、これを無視することはできません。つまり、何らかの通知をするか、プログラムを停止しなければなりません。ユーザーによって作成さ
The ATL Reference documents the Active Template Library (ATL), a set of template-based C++ classes that simplify the programming of Component Object Model (COM) objects. COM is a binary specification for creating and consuming software components on Windows. To fully take advantage of ATL, a working familiarity with COM is highly recommended. For more information about COM, see Component Object Mo
このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 第 1 部 : 1998 年 2 月 2 日 第 2 部 : 1998 年 2 月 9 日 第 3 部 : 1998 年 2 月 23 日 第 4 部 : 1998 年 3 月 2 日 第 5 部 : 1998 年 3 月 30 日 第 6 部 : 1998 年 4 月 27 日 第 7 部 : 1998 年 5 月 29 日 第 8 部 : 1998 年 7 月 30 日 目次 第 1 部 : COM を取り上げるって?まだ取り上げていなかったの? 第 2 部 : COM の基礎知識 第 3 部 : オブジェクトおよびインターフェイスの取得 第 4 部 : オブジェクト クラスとオブジェクト ライブラリ 第
VC++ による Windows アプリケーションのプログラミングについて自分の覚え書き目的にまとめているページです. 使用ソフトはMicrosoft Visual C++ 6.0 ,MFCは使わずに,Win32API SDKを用いた方法を説明します. 機能をインデックスとした関数逆引き形式を目指しています. 内容のレベルはある程度PCに慣れてて,ある程度プログラムをかじったことある人程度向けだと思います. C言語ぐらいはできるよね? Section1. ウインドウを作る プログラムの骨格となる部分.ここから始まります. VCに自動で作らせる 自分で作る 細かい事 ウインドウ作成に使う関数や構造体の説明.ひたすら引数やメンバの説明. 書くのも読むのもめんどくさいので必要な時だけ読め. ウインドウプロシージャ(コールバック関数) 主なメッセージ一覧(ノーマルウインドウ編)つき Section
いろいろ勉強した 忘れてしまいそうなので書き下しておく 雰囲気的なこと ウィンドウ 俗にいうウィンドウではなく、 GUI の部品全般(ボタンとか、ツールバー)も含む 俗にいうウィンドウは、フレームとか言う ハンドル ポインタみたいなもん HWND ウィンドウのハンドル DOM でいうと Node みたいなもん LPXXX XXX のポインタって意味 owner と popup 「ポップアップさせたウィンドウ = owner」と「ポップアップしたウィンドウ = popup」 DOM でいうと owner は、 window.opener で popup は、 window.frames って感じ HINSTANCE DLL とか EXE とかひとつと対応してるハンドル アプリケーションの HINSTANCE というと実行されている EXE のハンドル DLL や EXE のメモリ上の位置 H
私は多くの小規模プロジェクトで Make を使ってきましたが、より大きな規模のプロジェクトになると、それは非常にうんざりするようなものでした。最近までは、自分のビルドシステムに行いたいことが4つあったのですが、Makeでの方法が分かりませんでした。 out-of-sourceビルド(オブジェクトファイルが、ソースとは分離されたディレクトリにダンプ出力されます) 自動生成される(かつ正確!)ヘッダの依存関係 オブジェクト/ソースファイルのリストの自動的な決定 インクルードディレクトリのフラグの自動生成 以下にこれらの全てを行える、C、C++、およびアセンブリで動作するシンプルなMakefileを紹介します。 MAKEFILE TARGET_EXEC ?= a.out BUILD_DIR ?= ./build SRC_DIRS ?= ./src SRCS := $(shell find $(S
C 言語は 1972年にUSの有名なベル研究所で Dennis Ritchie らが設計・実装した言語だ。 今となっては低水準な言語だが、充分な機能、簡潔な記法とアセンブラに近いパフォーマンスを持ち、 Unix, Windows, Linux 等の OS をはじめ、コンパイラ、テキストエディタ等のツールや、ビジネスアプリやゲームなど多くの各種アプリケーション開発に用いられてきた。 C++ 言語は 1980年頃、やはりベル研究所の Bjarne Stroustrup が開発したもので、C にオブジェクト指向などの機能を追加したものだ。 C との互換性を維持しつつオブジェクト指向が可能で、パフォーマンスも高かったことから、 1990年頃から、ビジネスアプリやゲームなど多くのアプリケーション開発に使用されるようになった。 C++ は、過去の互換性を維持しつつ最先端のプログラミングパラダイムを多く
世の中にはわたしのようなライトC++書き向けの資料が不足しているので, 普段使い*1用途で収集したものをまとめてみました. ドキュメントを読む C++プログラミングガイド モダン C++ プログラミング - 日本語公開記事 - サイボウズエンジニアのWIKI STLのドキュメント cplusplus.com - The C++ Resources Network C++ reference - cppreference.com clangを使う Clang - Wikipedia gccよりもclangの方がC++ 規格に準拠しているとうたわれています. また, コンパイルもちょっと速い. *2 標準ライブラリを使う ∧∧∧∧∧∧∧∧∧ < STL!STL!STL!STL! > ∨∨∨∨∨∨∨∨∨ _ _ `/っ) /っ) / / ∧_∧ / / ∧_∧ \\( )\\(
[戻る] shin 2002/08/09(金) 06:04:22 C++のenum型で宣言する型のサイズを決める方法はあるのでしょうか? ANSI Cだとint型になるようですが、C++での振る舞いを知りたいです。 Cと同じかなと思ったのですが、DirectXのヘッダを見ると下のようになってました。 enum foo { foo0, foo1, foo_FORCE_DWORD = 0x7FFFFFFF }; この記述から「コンパイラはenum型の全定数の値域を調べ、それからサイズを決めるのかな?」 と思いました。でも、実際は値域に関係なくsizeof(int)固定でした。 (VC++6.0+SP5の為、sizeof(int)==4) 自身で調べた結果は「制御できない」でした。 ですが、上の例でわざわざfoo_FORCE_DWORDを設けている事から判断すると、 出来そうな気がします。 細か
○mapによる連想配列 ■連想配列とは 通常の配列は数字を添え字とした配列ですが連想配列は 文字列などを添え字として配列です ary["test"]=○○; ○○=ary["test"]; 上記のように配列の添え字を文字列で扱うことが出来ます ■連想配列として使うには #include <map> 必要なヘッダファイル. map<TYPE,TYPE> data; TYPE型のキーと要素の宣言 data.size() data[]の要素数を返す関数. data[N] 配列name[ ]のキーNのデータ. data.count(x) xをキーに持つ要素の数を返す。 data.max_size() 最大サイズ(要素数の上限)を返す。 ********************************************************************** ■(string st
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く