回答編集履歴
2
追記
test
CHANGED
@@ -5,3 +5,19 @@
|
|
5
5
|
C#はC++を参考にして作られた言語で、立ち位置としてはJavaに近いです。C++が基になっているので構文もC++に近いですが、やはり別の言語なのでC++と同じようにはいきません。私はC++歴の方が長いのでC#で何か作ろうとするときに、C++ならこういう風にできるのにC#ではできない、ということが多々あります(STLとかテンプレートとか)。
|
6
6
|
|
7
7
|
あと、C#ではポインタの使用は推奨されておらず、ポインタを使ったメモリ操作を行う際はコンパイルオプションを指定した上でunsafeコンテキスト(ブロック)という限定された中でしか使えないようになっています。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
---
|
12
|
+
|
13
|
+
追記
|
14
|
+
|
15
|
+
> C++でコーディングしていく際に他言語と混同してはいけない事
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
C#やJavaなどはガベージコレクションという、不要になったオブジェクト(領域)を自動で破棄する仕組みがあるのですが、C++では自分で管理しないといけないということが大きな違いだと思います。
|
20
|
+
|
21
|
+
C++では基本的にはnewでオブジェクトを作成(領域を確保)したらdeleteで削除しないといけません。「スマートポインタ」という仕組みを使えば「自動で破棄」させることは可能ですが、やはりちゃんと理解して使わないとメモリリークなどの問題を起こします。
|
22
|
+
|
23
|
+
|
1
読み返したら何か変なので文言修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
C++はC言語の仕様をほぼそのまま(完全に同じというわけではありませんが)継承しつつ、オブジェクト指向の拡張を加えたものです。ですので、C言語のコードはC++としても(拡張子をcppなどに付け替えても)ほとんどの場合そのままコンパイルできます。
|
1
|
+
C++はC言語の仕様をほぼそのまま(完全に同じというわけではありませんが)継承しつつ、オブジェクト指向の拡張を加えたものです。ですので、C言語のコードはC++としても(拡張子をcppなどに付け替えても)ほとんどの場合そのままコンパイルできます。したがって、現在においては純粋なC言語を使うことは(少なくとも実務では)ほとんどないと思います。C++やオブジェクト指向の理解が浅い人がC言語っぽく使うことを「ベターC」と呼ぶことがあります。
|
2
2
|
|
3
3
|
|
4
4
|
|