标题:这个程序有点不明白
只看楼主
fateboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-5-21
 问题点数:0 回复次数:6 
这个程序有点不明白

#include<iostream.h>
class BASE
{
public:
BASE(int i){cout<<"调用基类BASE的构造函数:"<<i<<endl;}
~BASE(){cout<<"调用基类BASE的析构函数"<<endl;}
/*****************found*****************/
};
class A: public BASE
{
public:
/*****************found*****************/
A(int a,int b):BASE(a),b(b)
{cout<<"调用派生类A的构造函数:"<<a+b<<endl;}
~A(){cout<<"调用派生类A的析构函数"<<endl;}
private:
BASE b;
};
void main()
{
/*****************found*****************/
A obj(1,2);
}
这里的 b(b) 是什么意思?有点不明白阿

2006-09-18 21:33
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
()初始化的另一种形式
相当于意思为 int b=b
这程序有错误啊
希望楼主不要图省事

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-09-18 21:40
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
得分:0 
编译了一下,没错误呀?

http://myajax95./
2006-09-19 14:30
天使坠落的眼泪
Rank: 2
等 级:新手上路
威 望:5
帖 子:204
专家分:0
注 册:2006-5-16
得分:0 

你所用的是初始化列表,当父类的构造函数是显式的初始化其成员的时候,那么子类必须用初始化列表去显式的初始化其父类的成员。


樹欲靜而風不止... http://blog./seablue_xj
2006-09-20 10:35
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
以下是引用myajax95在2006-9-19 14:30:05的发言:
编译了一下,没错误呀?

不会吧,很容易看出来啊
哦,???晕了
BASE(int i){cout<<"调用基类BASE的构造函数:"<<i<<endl;}
我还以为base有数据成员 int i 这里i没有给base数据成员呢
不好意思


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-09-20 15:07
雨夜微醺
Rank: 1
等 级:新手上路
威 望:1
帖 子:147
专家分:0
注 册:2006-9-25
得分:0 
是复制函数.

我若想到你就有种莫名的开心 我一见到你就有种莫名的悸动
2006-09-26 12:15
wyg_616
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-9-24
得分:0 
不关你的题意如何,只看语法,你程序里面的下个语句
A(int a,int b):BASE(a),b(b)
{cout<<"调用派生类A的构造函数:"<<a+b<<endl;}
等同于:
A(int a,int b):BASE(a)
{
this->b=b;
cout<<"调用派生类A的构造函数:"<<a+b<<endl;
}

胸有成竹,而面如平湖这可拜上将军
2006-09-26 18:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-91088-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.112724 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved