首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

2级考级有关问题(最好一起回答)

2012-02-04 
2级考级问题(最好一起回答)1.chars[] 9876 ,*pfor(psp s+2p++)std::cout p 还是不明白

2级考级问题(最好一起回答)
1.char   s[]= "9876 ",*p;
for   (p=s;p <s+2;p++)
std::cout < <p < < "   ";
还是不明白为什么不输出地址?

2.cout < <setfill( '* ') < <8;   里面的 < <8为什么会输出8?

3.class   C{virtual   void   main(){};};
    class   C{void   virtual   func(){};};
第一个main函数可以定义成虚函数吗?第二个virtual可以跟void调换位置吗?

4.我在一段程序中看到virtual   void   fun()=0{cout < < "virtual   fun=0 ";};
问题是纯虚函数不是应该没有函数体吗?

5.int   a,*pa=&a;       为什么输出指针pa的十进制地址值的方法是cout < <long(pa)?

[解决办法]
1.对char*的输出就是定义为:从指定的地址开始依次输出字符,直到遇到 '\0 '.这样我们就能用一个地址表示一个字符串.
要输出地址,强制转一下指针类型到其他指针类型.
2.cout < <8不输出8,难道输出9.
3.类成员函数可以和一个全局函数重名,但建议不这么做.virtual位置调换,可不可以,用编译噐试一下就知道了.
4.纯虚函数也可以有函数体.
class CB{
public:
virtual void fun()=0{cout < < "virtual fun=0 " < <endl;}
};
class CD:public CB
{
public:
virtual void fun(){
CB::fun();//这样可以给派生类一个统一的默认实现
//其他代码
}
};
5.对非char*指针,不转也是可以的,但输出的是16进制数.

热点排行