随笔分类 -  C++

摘要:前面曾写过一篇恼人的函数指针(一),总结了普通函数指针的声明、定义以及调用,还有函数指针数组,函数指针用作返回值等。但是作为C++的研读,我发现我漏掉了一个最重要的内容,就是指向类成员的指针,这里将做相应补充(相关代码测试环境为vs 2010)。指向类成员的指针总的来讲可以分为两大类四小类(指向数据成员还是成员函数,指向普通成员还是静态成员),下面一一做介绍:一、指向类的普通成员的指针(非静态)1、指向类成员函数的指针简单的讲,指向类成员函数的指针与普通函数指针的区别在于,前者不仅要匹配函数的参数类型和个数以及返回值类型,还要匹配该函数指针所属的类类型。总结一下,比较以下几点:a)参数类型和个 阅读全文
posted @ 2011-12-04 19:06 AnnieKim 阅读(25904) 评论(7) 推荐(16)
摘要:最近在花时间研读C++。函数这章讲到了函数的变长参数(ellipsis...),但是primer中讲得比较浅,提到了怎么声明怎么调用,但是没有写明在函数内部是如何获取变长的参数的。1)省略号(ellipsis)在无法给出所有传递给函数的参数的类型和数目时,可以使用省略号(...)指定函数参数表。有如下几种形式:1 void fun1(int a, double b, ...); //给出确定的几个参数,其他用省略号2 void fun2(int a ...); //省略号前有或者没有逗号都是可以的3 void fun3(...); //也... 阅读全文
posted @ 2011-11-25 11:24 AnnieKim 阅读(3467) 评论(2) 推荐(2)
摘要:在这里总结一下const限定修饰符的各种用法,都已经过vs2010测试。1) 声明及初始化const常量。在声明一个const常量时,必须对其初始化,否则会报错。1 const int constvar; //error2 const int constvar = 10; //ok但是,有一个例外的情况,就是extern进来的const常量不需要初始化(如果该常量其他地方确实有出现,这时将它extern进来并且初始化反而会出错)。1 extern const int externvar;2) 指针。对于指针变量有以下四种情况(这四句是不完整的,其中有些必须在声明时进行初始... 阅读全文
posted @ 2011-11-22 23:04 AnnieKim 阅读(5322) 评论(4) 推荐(9)
摘要:这篇是为了加深记忆所写。发现,很多知识若不经过反复的琢磨和动手实践,是很难记得住的。1) 函数指针的初始化。函数如下:1intCompareString(conststring&str1,conststring&str2)2{3returnstr1.compare(str2);4}函数的初始化有两种方式:第一种,也是最普遍的方式:1int(*CompareFunction)(conststring&,conststring&)=CompareString;第二种,是使用typedef定义函数类型,这种写法有助于对代码的理解:1typedefint(*Compar 阅读全文
posted @ 2011-11-20 10:36 AnnieKim 阅读(7844) 评论(3) 推荐(9)
摘要:下面这段代码是有问题的,问题当然是关于构造方法: 1: class A 2: { 3: private: 4: int i; 5: int j; 6: public: 7: A ( int val ) 8: :j ( val ), i ( j ) 9: {} 10: 11: void print(){ 12: cout<<i<<" "<<j<<endl; 13: } 14: }; 15: 16: int main() 17: { 18: A a(1... 阅读全文
posted @ 2011-05-22 15:19 AnnieKim 阅读(670) 评论(0) 推荐(1)
摘要:题目:已知下面的class层次,其中每一个class都定义有一个default constructor和一个virtual destructor:class X {......};class A {......};class B : public A {......};class C : public B {......};class D : public X, public C {......}; 下面哪一个dynamic_cast会失败?A) D *pd= new D; A *pa = dynamic_cast< A* >(pd);B) A *pa = new C; C *pc 阅读全文
posted @ 2011-05-17 11:07 AnnieKim 阅读(1617) 评论(3) 推荐(0)