摘要:
下面这段代码是有问题的,问题当然是关于构造方法: 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... 阅读全文
摘要:
题目:已知下面的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 阅读全文
摘要:
1voidout(char*ch,inti)2{3cout<<ch<<","<<i<<endl;4}56intmain()7{8vector<char*>vec;9vec.push_back("str1");10vec.push_back("str2");1112inti=0;13out("---begin---",i);1415while(i<vec.size())16{17out(vec[i],i++);18}1920out("---- 阅读全文
摘要:
void func(int *ptr, int &value){ ptr = &value; }int main(){ int i = 10, j = 5; int *ptr = &i; func( ptr, j); printf("%d", *ptr); return 0;}请问,此时输出来的*ptr的值是多少?5还是10?答案是10。这里主要涉及到函数参数问题,同int类型一样,指针也存在引用的问题。如果上面的函数声明改为:void func (int* &ptr, int &value);则答案就是5了。 阅读全文