永发信息网

c++的继承问题

答案:3  悬赏:60  手机版
解决时间 2021-04-29 10:42
#include <iostream.h>
class B
{
public:
B();
B(int i);
~B();
void print() const;
private :
int b;
};
B::B()
{
b=0;
cout<<"B's default constructor called."<<endl;
}
B::B(int i)
{
b=i;
cout<<"B's construnctor called."<<endl;
}
B::~B()
{
cout<<"B's destructor called."<<endl;
}
void B::print() const
{
cout<<b<<endl;
}

class C:public B
{
public :
C();
C(int i,int j);
void print() const;
private :
int c;
};
C::C()
{
c=0;
cout<<"C's default constructr called."<<endl;
}
C::C(int i,int j):B(i)
{
c=j;
cout<<"C's constructor called."<<endl;
}
C::~C()
{
cout<<"C's destructor called."<<endl;
}
void C::print() const
{
B::print();
cout<<c<<endl;
}
void main()
{
C obj(5,6);
obj.print();
}
请问这个程序错在哪里??还有顺便请问下,常对象只能调用常成员函数,但反过来说常成员函数只能用常对象调用吗???
最佳答案

将C::~C()
{
cout<<"C's destructor called."<<endl;
}


这个析构函数删除不要用(already has a body)


析构继承可能不行!


常成员函数用常对象来调用!


全部回答

主要是:类 C 的析构函数,没有定义,虽然,系统有预定义的函数,但是也是要定义的:

#include <iostream.h> class B { public: B(); B(int i); ~B(); void print() const; private : int b; }; B::B() { b=0; cout<<"B's default constructor called."<<endl; } B::B(int i) { b=i; cout<<"B's construnctor called."<<endl; } B::~B() { cout<<"B's destructor called."<<endl; }

void B::print() const { cout<<b<<endl; }

class C:public B { public : C(); C(int i,int j); ~C(); //<------------ void print() const;

private : int c; }; C::C() { c=0; cout<<"C's default constructr called."<<endl; } C::C(int i,int j):B(i) { c=j; cout<<"C's constructor called."<<endl; } C::~C() { cout<<"C's destructor called."<<endl; } void C::print() const { B::print(); cout<<c<<endl; } void main() { C obj(5,6); obj.print(); } 另外,你所说的常对象是指什么呢?是有对象先,之后才可以调用函数的,你的代码main()中类 C创建的一个对象 obj ,本身就不是一个常对象,他可以调用常函数 void print(),所以,常成员函数只能用常对象调用的,很明显错的!

class C:public B { public : C(); C(int i,int j); ~C();//这个忘了定义了 void print() const; private : int c; }; //常成员函数可以被普通对象调用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
那个面向对象方法究竟是什么东东,谁能帮忙详
现在我的QQ号出现了异常
索爱W910怎样刷机?
qq空间中心的 网址
二手车的转让合同怎么写才有效可以两个人私下
顺彩车行怎么去啊,有知道地址的么
我在论坛的帖子被河蟹了,还扣分不?
Lady gaga的一首歌
以及前面加不加逗号,一句话“或者”前面加逗
打手是什么?
猪也不是,狗也不是,黑白也不是,亦非家禽亦非
关于安宫牛黄丸
在家怎样给食品进行真空包装?
最经一个月有什么利好信息有什么利坏信息啊
脂肪是有内脂肪和外脂肪之分吗
推荐资讯
深圳市龙岗镇那里有中国银行。
今天早上CCTV5土地腾跃赛背景音乐是什么
天津的移动充值卡在苏州怎么充啊
帮忙算一下我的吧,随便什么都可以
高级群和普通群的共享空间分别为多大?
谁给我个游戏人生资格?马上
茶树丫口在哪里啊,我有事要去这个地方
我的电脑明明可以上网,为什么我打开驱动精灵
DNF有玩四川六区的吗?高手哈
第一次和男朋友上床,很怕会痛怎么办
河北大学计算机网络技术专业在哪上学?
天天酷跑暴走罗洁刷
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?