C++

This is easy to understand C++.

Main Contents

  • namespace
  • CLASS(Inheritance,encapsulation,polymorphism:structに関数が定義できるようになったもの,自身に対して関数を定義して、自身の変数を参照したりできます)
  • overload
  • template:関数テンプレート,クラステンプレート(template<>:明示的特殊化)
  • Object Oriented
  • Exception Handling
  • Constructor and Destructor
  • struct:構造体(C++では,構造体でも関数を定義できる(ただし,アクセシビリティはpublic):データ構造の定義.)
  • class vs struct
  • virtual(仮想関数指定子:純粋仮想関数) 実装がなく,プロトタイプが宣言されているだけの関数です.では意味は?->ANS:このクラスでは使わない.派生クラスで使う.
  • static:グローバル変数として扱うため?

Visual Studio Code Settings (vscode) using MSYS2

How2Set here

Compile + Link = Make a exe file

demangle

nm –demangle foo.o

 C++では引数の型が異なれば同名の関数を定義することができるので、名前の衝突を避けるために引数の型情報なども含むようコンパイラが名前を変更する。これを名前マングル(マングリング)という。マングルされた名前を元に戻すことはデマングルという。

this->

「このクラスのインスタンスの」..メンバ変数であることを明示する意味がある

現実世界のオブジェクト(物や生き物)をプログラムに表した(定義した)ものがクラスであり,それを実際にメモリ上で動作する実体としたものがインスタンスです.(スラスラわかるC++第2版)

 

reference

pointer

A class is an expanded concept of a data structure.

class = member variables + member functions (including constructor)

reading/writing a text file ref

how to compile and execute in Terminal on Mac OS X and mingw(start .), etc

g++ -o nopen nopen.cpp

./nopen

ofstream

hello.cpp

#include <iostream>
using namespace std;

int main ()
{
  cout << "Hello World! ";
  cout << "I'm Yamamoto Lab.";
}

g++ hello.cpp -o hello

./hello

calc.cpp

#include <iostream>
using namespace std;

int main ()
{
  int a=5;            
  int b(4);    
  int c(3);   
  int ans;

  a = a + b;
  ans = a - c;
  cout << ans;

  return 0;
}

g++ calc.cpp -o calc

multi thread tutorial