VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 716|回复: 10

[求助] 构造函数的高级应用

[复制链接]
38_avatar_middle
online_vip 2191265529 发表于 2017-10-26 22:56:40 | 显示全部楼层 |阅读模式
为什么会输出三个BClass()呢,构造的顺序是怎么样的?

#include<iostream>
#include<stdlib.h>

using namespace std;
class BClass{
public:
        BClass(int a){ cout << "BClass()" << endl; n = a; }
        virtual void show(){ cout << "BClass::show()" << endl; cout << n << endl; }
        ~BClass(){ cout << "~Base()" << endl; }
protected:
        int n;
};

class SClass :public BClass{
        BClass base;
        int m;
public:
        SClass(int a,int b, int c) :BClass(a), base(b){
                cout << "SClass()" << endl;
                n = b; m = c;
        }
        void show(){
                cout << "Sclass::Show()" << endl;
                cout << n << "," << m << endl;
        }
        ~SClass(){ cout << "~SClass()" << endl; }
};

int main(){
        SClass s(1, 2, 3);
        BClass *p = &s;
        p->show();
        system("pause");
        return 0;
}
1.png

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

08_avatar_middle
online_member SummerGull 发表于 2017-10-27 21:17:53 | 显示全部楼层
class BClass{
public:
        BClass(int a){ cout << "BClass()" << endl; n = a; }
        virtual void show(){ cout << "BClass::show()" << endl; cout << n << endl; }
        ~BClass(){ cout << "~Base()" << endl; }
protected:
        int n;
};
//第一个初始化

class SClass :public BClass{
        BClass base;//第二个初始化
        int m;
public:
        SClass(int a,int b, int c) :BClass(a), base(b){
                cout << "SClass()" << endl;
                n = b; m = c;
        }
        void show(){
                cout << "Sclass::Show()" << endl;
                cout << n << "," << m << endl;
        }
        ~SClass(){ cout << "~SClass()" << endl; }
};//第三个初始化。

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
38_avatar_small 2191265529 + 2 + 2 很给力!

查看全部评分

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 1 反对 0

使用道具 举报

07_avatar_middle
online_member freehawkzk 发表于 2017-10-28 19:48:20 | 显示全部楼层
我晕,一开始被楼主的标题误导了,只输出了两个BClass,第三个是SClass。害我傻傻的分析了半天。发现BClass怎么着都只会出现两次啊,哈哈

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

08_avatar_middle
online_member SummerGull 发表于 2017-10-29 13:20:30 | 显示全部楼层
freehawkzk 发表于 2017-10-28 19:48
我晕,一开始被楼主的标题误导了,只输出了两个BClass,第三个是SClass。害我傻傻的分析了半天。发现BClass ...

对的。我早就已经发现他的标题有问题了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

75_avatar_middle
online_member besteast 发表于 2017-11-3 13:59:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

38_avatar_middle
ico_lz  楼主| 2191265529 发表于 2017-11-3 17:40:31 | 显示全部楼层
SummerGull 发表于 2017-10-29 13:20
对的。我早就已经发现他的标题有问题了

哥,我自己都没发现问题构造函数的高级应用

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

08_avatar_middle
online_member SummerGull 发表于 2017-11-3 22:30:55 | 显示全部楼层
2191265529 发表于 2017-11-3 17:40
哥,我自己都没发现问题

C++ primer plus 看了哇?这本书 挺好的 不过感觉 讲的还有遗漏 在看本范磊的 就差不多了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

38_avatar_middle
ico_lz  楼主| 2191265529 发表于 2017-11-6 22:00:28 | 显示全部楼层
SummerGull 发表于 2017-11-3 22:30
C++ primer plus 看了哇?这本书 挺好的 不过感觉 讲的还有遗漏 在看本范磊的 就差不多了

哈哈,看了好多书了,经验不足,感谢大佬带飞啊构造函数的高级应用

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

14_avatar_middle
online_vip06 754045616 发表于 2017-11-14 16:02:53 | 显示全部楼层
你好,有没有读写记事本的MFC实例,给我一份 754045616@qq.com

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

75_avatar_middle
online_member besteast 发表于 2017-11-18 16:48:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-6-24 17:11

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表