什么时候用C ++调用构造函数?
在这里,我们将看到调用构造函数的时间。这里的构造函数是不同类型的。全局,局部,静态局部,动态。
对于全局对象,在进入主函数之前先调用构造函数。
示例
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
MyClass myObj; //Global object
int main() {
cout << "Inside Main";
}输出结果
Calling Constructor Inside Main
如果对象是非静态的,则当执行到达创建对象的位置时,将调用构造函数。
示例
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
int main() {
cout << "Inside Main\n";
MyClass myObj; //Local object
cout << "After creating object";
}输出结果
Inside Main Calling Constructor After creating object
当对象是局部静态对象时,仅第一次调用其构造函数,如果再次使用相同的函数,则不会受影响。
示例
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
void func() {
static MyClass myObj; //Local static object
}
int main() {
cout << "Inside Main\n";
func();
cout << "After creating object\n";
func();
cout << "After second time";
}输出结果
Inside Main Calling Constructor After creating object After second time
最后,对于动态对象,当使用new运算符创建对象时,将调用构造函数。
示例
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
int main() {
cout << "Inside Main\n";
MyClass *ptr;
cout << "Declaring pointer\n";
ptr = new MyClass;
cout << "After creating dynamic object";
}输出结果
Inside Main Declaring pointer Calling Constructor After creating dynamic object
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短