C++」タグアーカイブ

[C/C++] 内部結合と外部結合

  • 内部結合 : Internal Linkage
  • 外部結合 : External Linkage

ファイルスコープのオブジェクト定義(いわゆるグローバル変数定義)

  static 記憶域指定子なし extern
C言語 内部結合定義 外部結合定義 仕様なし
C++ 内部結合定義 非const: 外部結合定義
const: 内部結合定義
外部結合定義

続きを読む

[cpp] no template named ‘tuple’ in namespace ‘std’

原因

C++11機能が無効である。

解決方法

C++11機能を有効にする。

-std=c++11

[CPP] 関数束縛

C++11 における関数束縛 (Function Binding) の種類

静的束縛 Static Binding 事前束縛 Early Binding 物理関数 ※1
動的束縛 Dynamic Binding 遅延束縛 Late Binding 仮想関数

※1. C++では仮想関数ではない関数はシンプルに「関数」と呼びます。

 

キーワード

[C言語] switch文の中の変数の定義がエラーとなる

1. 症状

下記のようにswitchブロックの内部で変数宣言をおこなうとコンパイルエラーとなる。

続きを読む

[CPP] overrideしたいメンバー関数にvirtualを付け忘れるとどうなるか?

派生クラスで override することができるのは、基底クラスで virtual をつけたメンバー関数(=仮想関数)だけです。しかし、もし virtualをつけていない(つけるのを忘れた)メンバー関数(=非仮想関数)を派生クラスで override しようと試みると何が起こるでしょうか?
続きを読む

[CPP] 演算子オーバーロードの糖衣構文的解釈とフレンド関数による解決

プログラミング言語 C++ における演算子オーバーロードの糖衣構文的な解釈と、フレンド関数による解決

1. 演算子オーバーロードの糖衣構文的な解釈

※ 説明をシンプルにするために参照渡しやconst修飾は省略しています。

続きを読む