C++でのコード作成を学ぶ一方で、多くの状況で、変数値を与えるようなクラスを宣言するときにコードを実行する必要があります。私はPythonで__init__
を使うことができますが、C++でどうすればいいでしょうか?PythonのC++に相当する__init__
3
A
答えて
4
constructorと呼ばれるC++でのPythonの__init__
方法の同等。両方の役割は、使用できるようにクラスのインスタンスを初期化/構築することです。しかし、いくつかの違いがあります。 Pythonで
C++でそれらが初期化リストを使用して初期化しなければならないのに対し、データ・メンバーは、
__init__
内部に初期化されます。デフォルトでコンストラクタは親クラスのデフォルトのコンストラクタにチェーンされていますが、Pythonでは明示的に親を
__init__
、好ましくはsuper()
を呼び出す必要があります。C++では、関数オーバーロードが可能で、コンストラクタにも適用されます。これにより、異なるシグネチャ(引数リスト)を持つ異なるコンストラクタを宣言できます。 Pythonで同じことを行うには、
__init__
を受け入れるように宣言し、*args,**kwargs
を手動でディスパッチする必要があります。C++には、default constructor,copy constructorおよびmove constructorという空間的な種類のコンストラクタがあります。
例
のPython:
class Foo:
def __init__(self, x):
self.x = x
print "Foo ready"
C++:
class Foo {
public:
int x;
Foo(int x) : x(x)
{
std::cout << "Foo ready\n";
}
};
-1
これはデフォルトコンストラクタと呼ばれています:
class X {
public:
// only one of the next two lines should be present as the are both default constructors and having both would make it ambiguous which to use
X(); // Default constructor with no arguments
X(int = 0); // Default constructor with one default argument
X(int, int , int = 0); // Non-Default Constructor
};
関連する問題
- 1. Pythonに相当するC#の.Select?
- 2. Pythonのpdb.set_trace()に相当するC#
- 3. C#FileStreamクラスに相当するPython
- 4. Pythonに相当するPropertyUtilsBean
- 5. Jstackに相当するPython?
- 6. 'pat2cwav'に相当するPython
- 7. find2perlに相当するPython
- 8. 〜/ .bashrcに相当するPython
- 9. Rubyに相当するPython "_"
- 10. カールC#に相当する
- 11. R ++に相当するC++
- 12. C++に相当する。cin.peek()
- 13. db.repairDatabase()に相当するC#
- 14. VBA:GoalSeek C#に相当する
- 15. C++、C#のEncoding.ASCII.GetBytesに相当()
- 16. 相当のMatlab/Python GridData関数C#
- 17. Objective-Cに相当するC#のオーバーライド
- 18. Pythonのre.split()に相当するObjective-Cとは何ですか?
- 19. C#のFileStreamに相当するPythonは何ですか?
- 20. Pythonのall()関数に相当するC++ 11
- 21. リストのpython appendメソッドに相当するC++
- 22. C#でPython生の文字列 "r"フラグに相当する
- 23. Pythonの 'x in(a、b、c)'に相当するJava?
- 24. Java述語に相当するC/C++
- 25. (パスカルから)C/C++に相当する
- 26. Objective-C/Cocoaに相当するC#ManualResetEvent
- 27. Python(とPython C API):__new__と__init__
- 28. Pythonのplotly.tools.FigureFactory.create_scatterplotmatrixに相当するR?
- 29. Pythonの `urljoin`に相当するPHP
- 30. Pythonの `str.format`メソッドに相当するPHP?
それに問題があるとして、あなたの受け入れ答えにコメントを読んで確認してください。 – xaxxon
クラスが宣言されたときに '__init__'は実行されません。そのクラスのインスタンスが作成されるたびに実行されます。 –
それは私が意味するものです。私はちょうど使用する単語が分かりませんでした – LinuxLivesMatter