2016-08-22 4 views
-3

私はしばらくの間JavaとC#でプログラミングをしていましたが、私はいつもオブジェクトとクラスを同じものと考えていましたが、私が従うC++のコースは.hファイルとオブジェクト.cppファイル。これは一般的にC++プログラムの構造ですか?クラス/オブジェクトの関係は他のOOPと異なるのですか?C++のオブジェクトクラスの関係は、JavaやC#のように他の言語と異なっていますか?

+0

次の宣言を受け入れることによって、 'int a;'、クラスはオブジェクトに 'int'が' a'にあるようにオブジェクトにあります。 –

+1

実際にはありません。 1つのファイルに宣言(インタフェース)を持ち、別のファイルに実装するのは単なる規約です。 [.c vs .cc対.cpp対.hpp対.h対.cxx](http://stackoverflow.com/questions/5171502/c-vs-cc-vs-cpp-vs-hpp-vs-h)を参照してください。 -vs-cxx) –

+0

https://en.wikipedia.org/wiki/Object_(computer_science)https://en.wikipedia.org/wiki/Class_(computer_programming) –

答えて

1

.cppファイルでクラスの宣言が表示されることもあります。たとえば、このファイルを書いた人が、提示されたAPIの一部ではないと思われるヘルプクラスファイル.hにあります。 また、.hファイルに、プライベートメンバーとしてクラス内に保持されているオブジェクトが表示されることがあります。

実際、Javaはかなり厳密なソースとクラスファイルの組織にあなたを「プッシュ」します。多くの場合、あなたのフォルダと一致するでしょう&ファイル構成。 C++では、この点でもっと自由度がありますが、includeというヘッダファイルの概念があります。

1

クラスとオブジェクトの関係は他の言語と変わりありません。オブジェクトはクラスのインスタンスです。

したがって、たとえば:

Car myCar("licence-plate123"); 

車は、クラスです。 myCarはクラスカーのインスタンス、したがってオブジェクトです。

クラス宣言を分離するためには、規約とよく似ていて、オブジェクトやクラスとは関係ありません。

.hファイルには、クラスの説明が含まれています。そこには、クラスが提供するメソッドと、必要なパラメータが表示されます。 .cpp-Filesは各メソッドの動作を記述します。したがって、実際のソースコードです。

私が既に言ったように:これはもっと慣例に似ています。また、すべてのファイルを.h-Fileに書き込むこともできます。それはきれいではないが動作する

+0

ODRに違反していなければ動作します – bolov

+0

Oh 、ありがとう。それを考えていなかった –

+0

私は混乱していると思うのですが、クラスの説明、メソッドはすべてCで1つの.csfieに含まれていますが、C++ではオブジェクトのプロパティとメソッドは実装前の.hに記述する必要があります.cppに。これは正しいですか? – BBDev

関連する問題