什么时候用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 教师闺蜜祝福语简短