Skip to Content
Optimized C++ ―最適化、高速化のためのプログラミングテクニック
book

Optimized C++ ―最適化、高速化のためのプログラミングテクニック

by Kurt Guntheroth, 黒川 利明, 島 敏博
February 2017
Intermediate to advanced
368 pages
8h 21m
Japanese
O'Reilly Japan, Inc.
Content preview from Optimized C++ ―最適化、高速化のためのプログラミングテクニック
109
6.3 動的変数の使用を減らす
に作ることができる。これにより、各メンバにメモリを割り当てるコストが減らせる。
クラスインスタンスが、他のクラスのメンバで、取り囲むクラスを作るときにメンバを作るのに
必要な資源がなく、動的に作らねばならないことがある。これに対処するパターンは、問題のクラ
スを(それへのポインタではなく)含むクラスのメンバにして、作るときにも完全には初期化しな
いようにする。問題のクラスでは、資源ができたらメンバ関数を作って完全に初期化する。それか
ら、動的インスタンスが
new
を使って初期化されるところで、初期化メンバ関数への呼び出しを挿
入しておく。このよく使われるパターンは、
2
段階初期化(
two-part/tow-phase initialization
)と
呼ばれる。
2
段階初期化には余分なコストがかからない。メンバはいずれにせよ作られるまでは使えない。
メンバインスタンスが完全に初期化されているかどうかチェックするコストは、それへのポインタ
が
nullptr
かどうかチェックするのと同じだ。この方式の利点は、初期化メンバ関数が、エラー
コードその他の情報を返せるのに、コンストラクタではそれができないことだ。
2
段階初期化は、ファイルを読み込んだり、インターネットの
Web
ページを要求するなどの失
敗するかもしれないような時間のかかる初期化において、クラスが何かをしなければならないとき
に大いに役立つ。別々の初期化関数を提供することで、この種の初期化を他のプログラムの作業と
並行に行い( ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識

詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識

Adrian Kaehler, Gary Bradski, 松田 晃一, 小沼 千絵, 永田 雅人, 花形 理
JavaScript 第7版

JavaScript 第7版

David Flanagan, 村上 列
Cython ―Cとの融合によるPythonの高速化

Cython ―Cとの融合によるPythonの高速化

Kurt W. Smith, 中田 秀基, 長尾 高弘
Making Software ―エビデンスが変えるソフトウェア開発

Making Software ―エビデンスが変えるソフトウェア開発

Andy Oram, Greg Wilson, 久野 禎子, 久野 靖

Publisher Resources

ISBN: 9784873117928Other