计算机二级 C++程序语言设计 学习笔记、知识笔记

选择题

  1. 度为0的节点比度为2的节点多1。
  2. 关键字是属性或者属性的组合,其值能够唯一标识一个元组。
  3. DFD图是需求分析阶段的图形工具,而不是详细设计。
  4. 若基类成员的访问属性为private,则不能被继承。子类无权访问
  5. protected和友元函数
    1. private:类函数,友元函数
    2. protected:类函数、子类函数、友元函数
    3. public:都可以访问
    4. 友元函数不可以在类内部定义,可以声明在任意一个区。
    5. 友元类的所有成员函数都是另一个类友元函数
  6. 可以省略实参模板,但如果从模板函数实际参数中获得的信息有矛盾,则不能省略实际参数模板。
  7. 若派生没有重定义纯虚函数,这个函数仍然是纯虚函数。
  8. 运算符重载至少有一个形参是类的类型。
  9. 实参和形参共用内存单元。X
  10. 常对象处了可以调用静态成员函数,还可以调用常成员函数。
    1. 常对象中可以有非常成员函数。
  11. 内联函数
    1. 可以没有return语句
    2. 内联函数通过编译器实现
    3. 调用时发生控制转移?X
    4. 类中直接定义的函数默认为内联函数。
    5. 必须inline。X
  12. 调用父类中的dispa,输出的是Base::x.
  13. 一元运算符可以作为全局函数重载,不是非得成员函数。
  14. 由于\在C++中用来定义转义字符,必须对文件名字符中的\进行转义。
  15. 线性表可以是空表。
  16. 数据库管理系统在数据库的三级模式之间提供了两层印象,保证了数据库中数据的较高的逻辑独立性和物理独立性。
  17. 白盒测试:逻辑覆盖测试,基本路径测试。
  18. 虚函数可以是友元但是不能是静态函数。
    1. 无论是否使用virtual,重定义的虚函数都是虚函数。
  19. 前缀++:operator++()
    1. 后缀++:operator++(0)
  20. 枚举从0开始
  21. switch语句中default不是固定在最后的,同时也可以省略。
  22. 在下列存储器标识符中,内部静态类的可见性与存在性不一致。
  23. 派生类是基类的组合。
  24. delete 父类指针,只执行父类的析构函数。
    1. delete 子类指针,执行父类和子类。
    2. 父类虚析构函数,delete 父类指针。
  25. 模板函数有两个参数时,不能省略,可以强制转换。
  26. 变量作用域的屏蔽效应。形参 和 静态变量
  27. 派生类构造函数成员初始化列表中,包括自己成员初始化,基类构造函数,子对象初始化,不对基类中子对象初始化。
  28. 在树中,结点数为树中所有结点的度之和再加1。
    1. 同时,结点数为各种度的节点数之和。
  29. 快排最差复杂度$O(n^2)$,比较次数为$n(n-1)/2$
  30. 线性与非线性结构
    1. 循环队列是非线性结构(只能有一个根节点)
    2. front=24,rear=25:入队25次,出队24次。
  31. Base*p=Derived();((Base)p).fun();调用的是基类函数
  32. 第一范式:每个属性都已不能再分为简单项
    1. 第二范式,在以上基础上,非主键完全依赖于主键
    2. 第三范式,在以上基础上,非主键直接依赖于主键
    3. 部分依赖
  33. 关系模型中:多对多联系
  34. 在提供一个完整的类声明之前,不能声明该类的对象。
  35. 派生类的数据成员个数也包括不能直接访问的private成员。
  36. 不能重载的五个运算符.、.*、->*、::、?:
  37. 运算符作为非成员函数重载时可以不定义为友元,通过公有接口访问私有成员。
  38. 类型转换运算符只能重载为成员函数。=、[]、()、->
  39. 类成员对象构造函数调用顺序,与在类中声明的顺序相同。(先于类本身构造函数)
  40. setw设置只影响一个数据输出。

编程题

  1. friend TestClass* fun(TestClass* );//没有形参
    1. friend void mian();
    2. friend class Teacher;
  2. explicit 禁止隐式转换
  3. template <class T>或者template <typename T>
  4. virtual public TestClassA
  5. ofstream out1;out1.open("proj2.txt",ios_base::binary|ios_base::app)
  6. const char* GetName2()实现只读操作
  7. ios_base::app实现以追加的方式打开文件
  8. 对类数据成员取地址,定义指针
    1. int TestClass::*p=&(TestClass::m);
    2. p=&(TestClass::n)
  9. 字符串在两行
    1. "abc""def"
    2. "abc\def"
  10. a[3][3]取地址用a[0]或者&a[0][0];
    1. int* p=a[0];
    2. *(p+i);
    3. (a+i);
  11. operator int()没有返回值
    1. operator <<(char* str)
    2. int i=int(obj);
  12. assert(false);产生中断。
  13. 形参类型为自定义类型时,用引用。
  14. static int get(TestClass* obj)
    1. cout<<obj.get(&obj);
  15. const不能修饰非成员函数
  16. 当函数既有原型声明又有定义时,默认参数只能在原型声明中指定,不能在定义中指定。
    1. 同时,const数据成员无需在声明中的构造函数列表体现,定义中需要体现。
  17. 访问隐藏变量要使用作用域运算符::或者this指针.
  18. friend void fun();
  19. virtual void print()=0;
    1. class TestClass1:virtual private TestClass0
  20. outfile.open("out2.txt",ios::out);
    1. while(infile.get(ch))
  21. while(p->next!=NULL)格式问题
    1. while(str[i])
    2. cin.getline(str,120,'?')
    3. out1.put(s[i])
  22. Date & operator+=(int m)
上一篇:Python中with...as...的用法详解


下一篇:java反射和泛型简介