您的位置:首页 > 编程语言 > C语言/C++

c++ 中构造函数的调用先后顺序

2009-04-12 20:49 351 查看
Human.h

#pragma once

class Human
{
public:
Human(void);
};


Human.cpp

#include "StdAfx.h"
#include "human.h"

#include <iostream>
using namespace std;

Human::Human(void)
{
cout << " you call Human first " << endl;
}


Man.h

#pragma once

class Man : public Human
{

public:
Man(void);

};


Man.cpp

#include "StdAfx.h"
#include "Human.h"
#include "Man.h"

#include <iostream>
using namespace std;

Man::Man(void)
{
cout << " you call man first " << endl;
}


main.cpp

// ext.cpp: 主项目文件。

#include "stdafx.h"
#include "Human.h"
#include "Man.h"

using namespace System;

int main(array<System::String ^> ^args)
{
//Console::WriteLine(L"Hello World");
Man *a = new Man;
delete a;
return 0;
}


可以看到c++在创建一个对象的时候,是先调用了父类的构造函数,再调用子类的构造函数,

如果把父类的构造函数注释掉,那么程序会直接调用子类的构造函数

如果子类的构造函数也注释掉,编译器还是不会报错..

注意一点,构造函数不能被继承..
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: