computer 版 (精华区)
发信人: remember (明天会更好), 信区: program
标 题: C++自测题(2)
发信站: 听涛站 (2001年09月29日17:41:10 星期六), 站内信件
(2)About Declaration and Definition
已知Stack类的定义(参见自测题1)
众所周知,Stack类的构造函数被重载,支持两种形式的构造函数:
无参数和带一个int类型的参数;
ok,我们来看看以下哪些变量声明的写法是正确的:
a. Stack stack_a;
b. Stack stack_b();
c. Stack stack_c(1024);
好,接下来我们来看另一个关于函数的声明和定义(或叫实现)方面的问题。
在MyStack类中(参见自测题1),我们有这么一行程序:
MyStack(int maxsize=1024) {...}
通过自测题1,相信大家都知道这行的含义,现在具体的构造函数的定义是
在类体内以inline的形式写的,要是我们希望在类体外部写其具体定义呢?
修改后是否改如下呢?
class MyStack : public Stack{
public:
MyStack(int maxsize=1024);
...
};
MyStack::MyStack(int maxsize=1024)
{
cout << "MyStack::MyStack(int)\n";
}
好,接下来我们希望给MyStack增加一个初始化参数,例如是默认栈底元素,
就int defaultnum吧,ok,下面的写法是否可以通过编译器呢?
class MyStack : public Stack{
public:
MyStack(int maxsize=1024, int defaultnum);
...
};
嗯,我们都知道通常的做法是类体声明放在.h头文件,具体函数定义放在.cpp
文件,但有一种函数例外,请指出:
a. virtual
b. inline
c. Constructors and Destructors
并解释一下为什么这种函数通常应该放在.h头文件中(当然,不是绝对的)。
ok,已经写了不少问题了,大家想想吧~~~
--
洛阳亲友如相问 一片冰心在玉壶
※ 来源:·听涛站 tingtao.dhs.org·[FROM: 匿名天使的家]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.075毫秒